私はPerlが初めてで、それを学んでいます。bashが提供するように、タブによる単語の自動補完を提供するスクリプトを作成します。入力が定義された配列にない場合は、定義済みのメッセージを出力し、入力が配列にある場合は、同じものに対してシステム コマンドを実行します。
私の仮定では問題なく動作しますが、 [ 文字のみを入力するとエラーが発生し、なぜそれが発生するのかわかりません。
もう1つ、文字なしでタブのみを入力すると、配列に定義済みのコマンドが表示されず、プロンプトのみが表示されるとします。
親切に私を導き、間違っている場合は修正してください。
実行時にデバッグするための -x オプションがあるという点で bash シェル スクリプトを使用する前に、それを行うための Perl のオプションはありますか?
私のスクリプト:
#!/usr/bin/perl
use Term::Complete;
use List::Util 'first';
@cmd = qw/ls uptime clear/;
while (defined @cmd) {
$in = Complete('prompt', @cmd);
if (first { /$in/ } @cmd) {
system($in);
}
elsif ($in eq 'exit') {
`kill -9 $$`;
}
else {
print "Use these commands: ls uptime clear";
}
}
[ を入力するとエラー :
perl tab1.pl
prompt uptime
12:02:31 up 3:29, 2 users, load average: 0.00, 0.00, 0.00
prompt [
Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE / at tab1.pl line 8.
BR ベン