我試圖使用污染模式。我想打開一個基於用戶輸入的文件並打開一個文件來讀取數據。下面是我的代碼讀取受污染模式下的文件時出錯
#!/usr/bin/perl -w
use strict;
use warnings;
my $name = $ARGV[0];
my $file = "/Desktop/data/$name";
open MYFILE, "$file" or die $!;
while (<MYFILE>) {
chomp;
print "$_\n";
}
close(MYFILE);
情況1)當我用perl的 -w filename.pl input.txt中 我能夠從文件中讀取數據運行文件。
情況2)當我改變
#!/usr/bin/perl -w
to
#!/usr/bin/perl -T
和運行使用 的perl -T filename.pl input.txt中 我仍然可以讀取數據文件。
情況3)當我更改文件中寫入模式打開,並在被感染的模式下運行,我得到正確的輸出,
Insecure dependency in open while running with -t switch at test1.pl line 8.
與案件兩種情況可能是什麼問題?或者這是一個正確的行爲?
它允許打開一個文件在污染模式閱讀?
我的意思是如果我使用受污染的數據在讀取模式下打開文件,那不會給我任何警告? – user1247412 2013-04-21 23:16:22
等一下......除了模式之外,寫入模式代碼是否與讀取模式代碼完全相同? – michaelb958 2013-04-21 23:31:53
是的,它是....而不是最後的打印數據。 – user1247412 2013-04-21 23:32:50