我使用Perl 5.16.2,試圖以統計$_
串特定分隔符的出現次數音譯。分隔符是通過@ARGV
陣列傳遞給我的Perl程序。我確認在程序中它是正確的。我計算字符串中分隔符數量的指令是:Perl的TR操作是基於變量的名字而不是它的價值
$dlm_count = tr/$dlm//;
如果我對分隔符進行了硬編碼,例如計數出來正確。但是當我使用變量$ dlm時,計數是錯誤的。我修改了指令說
$dlm_count = tr/$dlm/\t/;
,並從標籤是如何插入該操作已被替換的任何四個字符「$
」的每個實例的字符串中實現,「d
」,「l
」,或「m
」到\t
- 即任何由我的變量名$dlm
四個大字。
這裏是一個說明該問題的示例程序:
$_ = "abcdefghij,klm,nopqrstuvwxyz";
my $dlm = ",";
my $dlm_count = tr/$dlm/\t/;
print "The count is $dlm_count\n";
print "The modified string is $_\n";
裏有$_
串只有兩個逗號,但這個程序打印如下:
The count is 3
The modified string is abc efghij,k ,nopqrstuvwxyz
爲什麼$dlm
令牌被視爲一個由四個字符組成的字符串而不是變量名稱?
哇,這是響應一個金礦。感謝所有回覆的人,我非常感謝。 – rbaumann