我有以下的瑣碎的腳本:如何將一個複雜的數字從命令行傳遞給sub MAIN?
#!/usr/bin/env perl6
use v6.c;
sub MAIN($x)
{
say "$x squared is { $x*$x }";
}
與實數調用它時這工作完全正常,但我想通過它的複數爲好。 當我嘗試這原樣,會發生以下情況:
% ./square i
Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏i' (indicated by ⏏)
in sub MAIN at ./square line 7
in block <unit> at ./square line 5
Actually thrown at:
in sub MAIN at ./square line 7
in block <unit> at ./square line 5
當我改變我的腳本
#!/usr/bin/env perl6
use v6.c;
sub MAIN(Complex $x)
{
say "$x squared is { $x*$x }";
}
它停止工作完全:
% ./square i
Usage:
square <x>
% ./square 1
Usage:
square <x>
有什麼辦法在當前的Perl 6中執行此操作?
謝謝,這很好。有點不幸的是./square i'不行(方法'Complex'沒有找到'Str'類的調用者),你必須做'./square 0 + 1i',但我可以忍受。 – mscha