[問題] 請問變數設定為什麼會出現多餘字元

作者: qimog (qimog)   2014-06-16 22:07:48
請問板上有無高手能夠替小弟解惑,為何以printf設定變數時,該變數會多出"1"字元。
以下為實例
for (0..$Nofile-1)
{
$head=printf ("%04s_%s", $_+1, $Tar_file{$EinO[$_]});
print "$head\n";
}
得到結果為
0001_BHandHLYP.W4t.R1-4.out1
0002_BHandHLYP.W4t.R1-1.out1
0003_BHandHLYP.W4t.L3-2.out1
0004_BHandHLYP.W4t.L1-1.out1
然以
for (0..$Nofile-1)
{
printf ("%04s_%s\n", $_+1, $Tar_file{$EinO[$_]});
}
則得到
0001_BHandHLYP.W4t.R1-4.out
0002_BHandHLYP.W4t.R1-1.out
0003_BHandHLYP.W4t.L3-2.out
0004_BHandHLYP.W4t.L1-1.out
請問,為什麼存入變數會在變數字串末尾多個"1"?
由於小弟一定要將之設定為變數,之後用作於排序和重新命名用。
所以希望了解這個問題的高手們,可以告訴我為什麼會多個1,及如何解決呢?
作者: Uruzu (...)   2014-06-16 22:21:00
作者: qimog (qimog)   2014-06-16 23:31:00
非常感謝您的幫助 ^^
作者: xatier (一切重來就好了...)   2014-06-17 09:38:00
你這不就把 printf 的 return value 拿出來印了嗎 XD
作者: qimog (qimog)   2014-06-17 19:04:00
樓上說得是

Links booklink

Contact Us: admin [ a t ] ucptt.com