我使用命令行將字符串傳遞給Perl程序。例如,這傳遞"stackOveflow"
到程序hello
Perl`chop`刪除兩個字符而不是一個
hello "stackOveflow"
我用chop
從的@ARGV
chop($ARGV[$#ARGV]);
,然後最後一個元素刪除最後一個字符打印
say "$ARGV[$#ARGV]";
我我期待"stackOveflow
在輸出,但我看到stackOveflo
有人能告訴我爲什麼嗎?
我使用命令行將字符串傳遞給Perl程序。例如,這傳遞"stackOveflow"
到程序hello
Perl`chop`刪除兩個字符而不是一個
hello "stackOveflow"
我用chop
從的@ARGV
chop($ARGV[$#ARGV]);
,然後最後一個元素刪除最後一個字符打印
say "$ARGV[$#ARGV]";
我我期待"stackOveflow
在輸出,但我看到stackOveflo
有人能告訴我爲什麼嗎?
hello "stackOveflow"
告訴shell執行程序hello
和字符串stackOveflow
傳遞給它作爲參數(類似於my $s = "stackOveflow";
如何stackOveflow
分配字符串$x
在Perl)。
chop
刪除字符串的最後一個字符,所以值從stackOveflow
更改爲stackOveflo
。
$ perl -E'say $ARGV[-1]; chop($ARGV[-1]); say $ARGV[-1]' "stackOveflow"
stackOveflow
stackOveflo
他爲什麼越來越則在參數值開雙引號? – 2014-11-04 18:50:22
''「'不是作爲字符? – 2014-11-04 18:50:28
@Jonathan M,他不是。 – ikegami 2014-11-04 18:51:22
'的perldoc -f pop' – toolic 2014-11-04 18:52:12
'的perl -E '說,印章,說對流行' 「stackOveflow」' – 2014-11-04 19:00:58