はい/いいえの回答をユーザーに求めるために、次のPerlコードがあります。ユーザーが yes/no 以外の何かを入力した場合は、プロンプトを出し続けます。それ以外の言葉は受け入れられません。このコードが機能しない理由がわかりません。「nooooo」という回答でテストしましたが、再度プロンプトが表示されることを期待していましたが、while ループには入りません。
ここで私の間違いを見つけるのを手伝ってくれる人はいますか?
@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; }