Perlについての質問箱 65箱目 (112レス)
上
下
前
次
1-
新
99
(1)
: 2023/06/07(水)16:24
ID:ywJ2sk66(1/2)
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
99: [] 2023/06/07(水) 16:24:29.96 ID:ywJ2sk66 Perlのpackage内my変数についてちょっと疑問。 myはレキシカルな局所変数なので、他package内のmy変数は他のpackageからは参照できず、参照したければmy出なくourにすると解釈していたが。 packageが別々のソースファイルだった場合はその通りですっきりしたスコープ仕様だと思っていたが… ところが二つのpackageが同じソースファイル内にあり、他のpackageのmy変数を参照すると変な感じ: 例 use strict; use warnings; package P1; our $aa = __PACKAGE__.'aa'; my $bb = __PACKAGE__.'bb'; package P2; print __PACKAGE__ . "(1)$P1::aa\n"; print __PACKAGE__ . "(2)$aa\n"; print __PACKAGE__ . "(3)$P1::bb\n"; print __PACKAGE__ . "(4)$bb\n"; 実行結果 $ perl package_a_b.pl Name "P1::bb" used only once: possible typo at package_a_b.pl line 14. P2(1)P1aa P2(2)P1aa Use of uninitialized value $P1::bb in concatenation (.) or string at package_a_b.pl line 14. P2(3) P2(4)P1bb P2からはP1のmy $bbが$bbで参照できて、$P1::bb だとエラー、なんだこりゃ…??? ちな 5.36.0 と 530.0 で確認した。 http://mevius.5ch.net/test/read.cgi/tech/1616856733/99
の内変数についてちょっと疑問 はレキシカルな局所変数なので他内の変数は他のからは参照できず参照したければ出なくにすると解釈していたが が別のソースファイルだった場合はその通りですっきりしたスコープ仕様だと思っていたが ところが二つのが同じソースファイル内にあり他のの変数を参照すると変な感じ 例 実行結果 からはの がで参照できて だとエラーなんだこりゃ??? ちな と で確認した
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 13 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
ぬこの手
ぬこTOP
0.038s