下記のような配列内定義サブルーチン呼び出しを作成し動作を確認しました。
次にソース2行目の「no strict;」を「use script;」に変更すると
Bareword "sub1" not allowed while "strict subs" in use at refsub_OK.pl line 4.
Bareword "sub2" not allowed while "strict subs" in use at refsub_OK.pl line 4.
Bareword "sub3" not allowed while "strict subs" in use at refsub_OK.pl line 4.
Execution of refsub_OK.pl aborted due to compilation errors.
とエラーになります。
プログラムはやはり「use script;」を記述したいのですが、「use script;」を記述
したままでエラーにならない方法がありましたらおしえてください。
perlのバージョンは5.12.3、OSはWindowsXP SP3です。
よろしくお願いします。
---ソースここから---
#!perl
no strict;
use warnings;
my @ary = (
("input1.txt", "save1.txt", sub1),
("input2.txt", "save2.txt", sub2),
("input3.txt", "save3.txt", sub3),
);
while (@ary) {
my $p1 = shift(@ary);
my $p2 = shift(@ary);
my $sub = shift(@ary);
print "p1=[$p1] p2=[$p2] sub=[$sub]\n";
&$sub("$p1", "$p2");
}
sub sub1 {
my ($p1, $p2) = @_;
print "sub1: [$p1] [$p2]\n";
}
sub sub2 {
my ($p1, $p2) = @_;
print "sub2: [$p1] [$p2]\n";
}
sub sub3 {
my ($p1, $p2) = @_;
print "sub3: [$p1] [$p2]\n";
}
---ソースここまで---
No.1ベストアンサー
- 回答日時:
\&sub1
とかいうように、関数名だけ(Bareword:剥き出しの単語)ではなく、関数のリファレンスであることを明記しろ、ということでは。
use strict;
・・・
my @ary = (
("input1.txt", "save1.txt", \&sub1),
("input2.txt", "save2.txt", \&sub2),
("input3.txt", "save3.txt", \&sub3),
);
としてうまくいきました。
本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- YouTube youtubeからの著作権メールについて 2 2023/02/14 16:12
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- 英語 Feelings: Sometimes our feelings are very strong. 1 2023/05/08 18:07
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
乱数と順列と組み合わせ
-
grep関数を用いた複数行からの抽出
-
アルファベットn文字の組み合わ...
-
python質問
-
画面を強制的に再描画させる方法
-
perlで2次元配列をサブルーチ...
-
どなたかこのプログラミングを...
-
VBのReturnの使い方
-
VBA for i=1 to lastrow
-
VBAでの一時停止と再開の方法
-
Excel VBA ユーザーフォームの...
-
乱数の桁数指定、または範囲指定。
-
ということですか 他に固定りよ...
-
VBAのautofilter、criteriaの配...
-
Visual BasicのUserFormが閉じ...
-
アセンブラによるウェイト(WAIT...
-
マクロ Publicでの配列定義
-
ListBox 複数選択 で オートフ...
-
UWSCの終了の仕方
-
Perlは戻り値で、ハッシュや配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlでファイルの拡張子を除い...
-
python質問
-
DBIを使ってのデータの取り出し...
-
grep関数を用いた複数行からの抽出
-
データベースから取得したデー...
-
配列内定義サブルーチン呼び出し
-
C言語の関数ポインタのイメージ...
-
桁数指定と四捨五入
-
アルファベットn文字の組み合わ...
-
index関数で複数個抜き出す
-
Perl 戻り値の型の判定って出来...
-
二桁の数字からなる配列数10...
-
サブルーチンと繰り返し処理を...
-
ソート時同じ値がある場合、表...
-
ファイルの最後の行から表示さ...
-
半角文字の縦書き表示
-
配列やハッシュで中身が同じか...
-
乱数と順列と組み合わせ
-
ハッシュ内の各値部分に配列を...
-
正規表現に関する質問
おすすめ情報