Perl初心者スレ(マジレス回答) (523レス)
Perl初心者スレ(マジレス回答) http://mevius.5ch.net/test/read.cgi/tech/1349538519/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
401: デフォルトの名無しさん [] 2017/02/26(日) 22:46:53.99 ID:UaR+28E8 以下エラーが出たため、ググると、似たエラーのQ and Aがありました。 Q and A では "if(defined(%hash))"を"if(%hash)"にしろと読めたので、倣うと確かにエラーは解消されました。 理屈はまるで分からないのですが、%記号のついた変数のときだけdefinedを削る理由は何なのでしょうか。 エラー: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at ./w3mhelp.cgi line 51. Q and A: https://github.com/bioconda/bioconda-recipes/issues/1254 http://mevius.5ch.net/test/read.cgi/tech/1349538519/401
402: デフォルトの名無しさん [sage] 2017/02/26(日) 23:46:32.86 ID:03Ms8vp8 >>401 すごく古い Perl (例えば 5.005_03) だと、defined %hash はエラーにならず 0 か 1 が返ってきていた。 だが今やこの機能は廃止された。 http://perldoc.jp/func/defined > 集合(ハッシュや配列)への defined の使用は非推奨です。 > これはその集合にメモリが割り当てられたかを報告するのに用いられていました。 > この振る舞いは将来のバージョンの Perl では消滅するかもしれません。 ハッシュ変数自体をスカラーコンテキストで評価すると「利用バケット数/確保バケット数」のような値が 返ってきて、これは昔から変わらない。内容が完全に未定義 = キーが一つも無ければ 0 が返される。 よって if (%hash) { ... } は、意味や挙動的には if (keys %hash) { ... } と同じ。 my %hash; printf "%s, %d\n", scalar %hash, scalar keys %hash; # 0, 0 $hash{udnef} = undef; printf "%s, %d\n", scalar %hash, scalar keys %hash; # 1/8, 1 %hash = (); printf "%s, %d\n", scalar %hash, scalar keys %hash; # 0, 0 http://d.hatena.ne.jp/yumatsumo/20071207/1197002522 http://mevius.5ch.net/test/read.cgi/tech/1349538519/402
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s