• ベストアンサー

my演算子について

まだPerlをはじめたばかりの初心者ですよろしくお願いします。 my($ret, $MESS, $s); my(@PARAG, $PARAG); my(@VALANAME, $VALANAME); my(@DATA, $DATA); my(%NEEDDATA); 上記のように use strict;配下で宣言(っていうのかな?)を行っているプログラムがあります。 my演算子って複数の変数を一度に宣言することができるとどこかで呼んだのですが、上記のようにmy()を分けているのは便宜上の問題でしょうか? つまり my($ret, $MESS, $s,@PARAG, $PARAG,@VALANAME, $VALANAME); というように宣言していることと同じになりますか? ※VB出身者なため”宣言”という言葉を使っていますが、これについても正しい言葉遣いがあればご指摘ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

> my演算子って複数の変数を一度に宣言することができるとどこかで呼んだのですが、上記のようにmy()を分けているのは便宜上の問題でしょうか? > つまり > my($ret, $MESS, $s,@PARAG, $PARAG,@VALANAME, $VALANAME); > > というように宣言していることと同じになりますか? その通りです。 ちなみに、Perlなどのスクリプト言語では、変数の「宣言」と言う概念がありません。 my は、ローカル変数である事を明示的に示すための物です。

cshoaucmoa
質問者

お礼

どうもありがとうございました。なかなかしっくりくる説明がなくて。。。助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>my()を分けているのは便宜上の問題でしょうか? 1個で書いても同じです、便宜上のことだと思います。 宣言している、で別におかしくはないと思います。

cshoaucmoa
質問者

お礼

ありがとうございます。宣言、でいいのですね。 でもperlの場合myは演算子なんですね。VBでは宣言するとき、Dim等のステートメントで行うので、不思議な感じです。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBで三項演算子

    CやPerlで三項演算子がありますが、 ret = (1 == 1) ? "真" : "偽"; VBはIFF関数?で同じようなことができますか? 注意点など知りたいです。

  • use strictを宣言してlocal変数を使うには?

    Perl初心者です。初歩的な質問ですが、 サブルーチンの中で my だと、その下の{ } ブロックではmyで宣言したローカル変数がスコープされないので  localを使うのではないかと思いますが、 それだと、use strictではエラーになります。 こんなときどう処理したらよいのでしょうか。

    • ベストアンサー
    • Perl
  • perl use strict エラーにならない?

    perlの使い方を勉強しているのですが use strict;を記述すると 変数宣言が必要になるということですが 以下のように記述してもエラーになりません。 use strict;を記述すると my $a;がないと$a="Hello";で エラーになるのではないのでしょうか。 ---test.pl---- use strict; $a="Hello"; print $a; -------------- >test.pl Hello > (Windows7, ActivePerl)

    • ベストアンサー
    • Perl
  • use strictが効かない (PERL)

    たびたびお世話になっております。 PERL version 5.14.2 をWindows 7 のコマンドプロンプトから起動して使っています。 use strict; と一行目に書くと 宣言されていない変数があれば拒絶されるとのことで #!/usr/bin/perl use strict; use warnings; $a = 10; print "$a\n"; というスクリプトを書きました。が、すんなり動いてしまいます。 use strict; は どうすればうまく効くのでしょうか。 ご指導お願いします。

    • ベストアンサー
    • Perl
  • Perl my 改行について

    #Practice Coad in Perl(注意:プログラムは上から実行される) use strict; use warnings; # スカラー変数 my $a = '1'; #これは「1」という数字の入っている箱 my $b = '2'; #これは「2」という数字の入っている箱 my $str = "ABCD_TEXT"; #文字列 print "$a" - "$b" ; print "$str"; 以下のコードで、my$str ="ABCD_TEXT"; #文字列 表示を 3 ABCD_TEXT としたい。 どうすればいいか?

  • strictなPHP

    PHPではPerlで言うところの use strict に相当するものはあるのでしょうか? (変数宣言しないでコーディングできちゃうのが何か気持ち悪くて…)

    • 締切済み
    • PHP
  • 構文エラーのある行番号を知りたい

    いつもお世話になっております。 現在既存のPERLを解析して、初心者ながらもなおしています。 で、私が直すとCGIエラーが起こり、よくよく調べたら”;”がなかったり、use strict;を宣言しているのにmy(hoge)と書いていなかったり、でケアレスなミスがたくさんあり、それをつぶしていけば何とかわかるのですが、何せ、たくさん改造かけてしまったあとではそれだけでも見つけるのが大変です。そういうエラーがある場合、”○○行目に";"がありません”というメッセージがhtml上に表示されると便利なのですが、そういう機能はありませんか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • ループ変数の変更

    GUCIと申します。 ループ変数の変更は、元の値を変えてしまうのでしたっけ? 元を変えずに変更したい場合に、 my $data_tmp = $data; $data_tmp =~ s/^0+//; としないといけないなんて。 らくだ本読んでも解りませんでした。 どなたか、解説お願いします。 C:\>type T1.pl #!Perl use strict; my @data = qw(001 002 003); print "S1: data is @data\n"; for my $data (@data) { $data =~ s/^0+//; } print "S2: data is @data\n"; __END__ C:\>T1.pl S1: data is 001 002 003 S2: data is 1 2 3

    • ベストアンサー
    • Perl
  • perlの自作ライブラリについて

    perlの自作ライブラリについてお聞きしたいのですが use strict;やuse File::Copy;は、 パッケージ宣言でするものでしょうか? それとも関数内で行うものでしょうか? package aaa; sub aaafunc { use strict; use utf8; use File::Copy; use File::Basename; #簡単な設定ファイルクラス use Config::Simple; } 1:

    • ベストアンサー
    • Perl
  • PerlからPHPへ移行したときの注意事項は

    PerlからPHPに移りまして、戸惑うことがあります。 Perlでは、 use strict; my $hensuu = 1; とレキシカル変数としなければ、変数未宣言となり スペル間違いの変数の使用が避けられるのですが、 PHPでは、 $hensuu = 1; と、何の設定もなく、利用時に $hensu += 0; としても問題なく動作します。 これって危険なのですが、みなさんはどう対処していますか? あと、PerlからPHPにソース移行する場合に 気をつけないことがありましたら、教えてください。

    • ベストアンサー
    • PHP