我有以下Perl代碼來提示用戶是/否回答。如果用戶輸入除yes/no以外的任何內容,請繼續提示。沒有其他詞是可以接受的。我不知道爲什麼這個代碼不起作用。我測試回答「noooooo」,我期待它再次提示,但它不會進入while循環。perl確切字符串匹配
任何人都可以在這裏找到我的錯誤嗎?
@files = A, B, C;
foreach $c (@files) {
if (-e $c ) {
print " $c already exists. Do you want to overwrite? (yes or no): ";
chomp ($file_yes_no = <STDIN>);
while ($file_yes_no !~ m/yes{1}|no{1}/i) {
print "$c already exists. Do you want to overwrite? (yes or no): ";
chomp ($file_yes_no = <STDIN>);
}
if ($file_yes_no =~ m/yes/i) {
if (system ("cp -f /home/old_path/ /home/new_path/ == 0) {
print "$c successfully copied;
} else {
die "Error: Copy failed, Check the message above";
}
}
else { print "No files copied\n; }
使用'File :: Copy'複製文件。 '使用File :: Copy qw(copy);拷貝($ src,$ dest)或者死掉$ !;' – TLP
'do {print ...; chomp ...}而條件;'。更好的是,http://p3rl.org/IO::Prompt – ysth
你是否在使用'use warnings;嚴格使用;'? – chepner