下へ
> 2000/12/12 (火) 11:57:21 ◆ ▼ ◇ [mirai]> > 二人もいるとは豊作だ
> > use strict;
> > した場合に
> > local $foo;
> > とローカル宣言が出来なくなるよね
> > これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> > どうすればいいのだろう
> > それともuse strict;しない方がいいのだろうか
> sub a1 {
> local $foo;
> a2();
> }
> sub a2 {
> $fooを使う
> }
>
> むりやりmyで実現してみる。
> sub b {
> my $foo;
> my $b1 = sub {
> &$b2;
> };
> my $b2 = sub {
> $fooを使う
> };
> &$b1;
> }
> ここまでしたい?
> 素直に引数使っておけ。
遅レスでスマンコ
テレビ見てたもんで
さっきちょっと調べてたらmyはperl5から実装されたみたいだね
localよりもmyを使うことを推奨してるみたい
引数渡す方法でやってみるよ
もしくは頻繁に参照する値はグローバルでってことみたいだな
参考:2000/12/12(火)10時46分07秒
> 2000/12/12 (火) 10:46:07 ◆ ▼ ◇ [mirai]> 二人もいるとは豊作だ
> use strict;
> した場合に
> local $foo;
> とローカル宣言が出来なくなるよね
> これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> どうすればいいのだろう
> それともuse strict;しない方がいいのだろうか
sub a1 {
local $foo;
a2();
}
sub a2 {
$fooを使う
}
むりやりmyで実現してみる。
sub b {
my $foo;
my $b1 = sub {
&$b2;
};
my $b2 = sub {
$fooを使う
};
&$b1;
}
ここまでしたい?
素直に引数使っておけ。
参考:2000/12/12(火)10時12分20秒
> 2000/12/12 (火) 10:28:17 ◆ ▼ ◇ [mirai]> > そうするか・・
> > というかlocalのスコープってちょっと便利そうに思ったんで使ってみたかったんだが
> > strictを使うとlocalが使えなくなるというのはちょっと不便かな
> myは?
myは宣言したルーチンから抜けると使用不可能になるんだが
localだと宣言したルーチン下から呼び出された全てのルーチン内でスコープを持つ
参考:2000/12/12(火)10時21分28秒
> 2000/12/12 (火) 10:26:09 ◆ ▼ ◇ [mirai]> > 二人もいるとは豊作だ
> > use strict;
> > した場合に
> > local $foo;
> > とローカル宣言が出来なくなるよね
> > これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> > どうすればいいのだろう
> > それともuse strict;しない方がいいのだろうか
> local($foo);
それも駄目
取り合えずmainルーチン内で宣言した変数はlocalのように動くが
サブルーチン内で宣言した変数は全てそのルーチン内でのみしか使えないのか
グローバルに使いたい場合はメインルーチンで宣言するしかないのかな
参考:2000/12/12(火)10時17分44秒
> 2000/12/12 (火) 10:21:28 ◆ ▼ ◇ [mirai]> > 素直に引数として渡せばどうよ?
> そうするか・・
> というかlocalのスコープってちょっと便利そうに思ったんで使ってみたかったんだが
> strictを使うとlocalが使えなくなるというのはちょっと不便かな
myは?
参考:2000/12/12(火)10時19分50秒
> 2000/12/12 (火) 10:19:50 ◆ ▼ ◇ [mirai]> > 二人もいるとは豊作だ
> > use strict;
> > した場合に
> > local $foo;
> > とローカル宣言が出来なくなるよね
> > これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> > どうすればいいのだろう
> > それともuse strict;しない方がいいのだろうか
> 素直に引数として渡せばどうよ?
そうするか・・
というかlocalのスコープってちょっと便利そうに思ったんで使ってみたかったんだが
strictを使うとlocalが使えなくなるというのはちょっと不便かな
参考:2000/12/12(火)10時14分34秒
> 2000/12/12 (火) 10:17:44 ◆ ▼ ◇ [mirai]> 二人もいるとは豊作だ
> use strict;
> した場合に
> local $foo;
> とローカル宣言が出来なくなるよね
> これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> どうすればいいのだろう
> それともuse strict;しない方がいいのだろうか
local($foo);
参考:2000/12/12(火)10時12分20秒
> 2000/12/12 (火) 10:14:34 ◆ ▼ ◇ [mirai]> 二人もいるとは豊作だ
> use strict;
> した場合に
> local $foo;
> とローカル宣言が出来なくなるよね
> これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
> どうすればいいのだろう
> それともuse strict;しない方がいいのだろうか
素直に引数として渡せばどうよ?
参考:2000/12/12(火)10時12分20秒
2000/12/12 (火) 10:12:20 ◆ ▼ ◇ [mirai]二人もいるとは豊作だ
use strict;
した場合に
local $foo;
とローカル宣言が出来なくなるよね
これの代用方法というかuse strict;した場合もlocalと同様のスコープを持つ変数を使いたいんだが
どうすればいいのだろう
それともuse strict;しない方がいいのだろうか
上へ