[Perl] ハッシュのキーに使える値

Posted by
ぴろり
Posted at
2009/01/06 21:32
Trackbacks
関連記事 (1)
Comments
コメント (1)
Post Comment
コメントできます
Category
開発メモ カテゴリ

 Perl でハッシュのキーに使える値を疑問に思ったので簡単に実験。undef や空文字列もキーに使えるんですね。

このエントリーをはてなブックマークに追加  

use Data::Dumper;

my %hash;
$hash{  0  } = 'numeric zero';
$hash{ '0' } = 'sigle quoted zero'; # over write above
$hash{ '0'} = 'escaped zero in sigle quotes';
$hash{ "0"} = 'escaped zero in double quotes';
$hash{  0 } = 'escaped zero in non quotes';
$hash{  A  } = 'Uppercase character A';
$hash{  a  } = 'lowercase character A';
$hash{ ''  } = 'empty string';
$hash{undef} = 'undefined value';

print Dumper(%hash);
$VAR1 = {
          '' => 'empty string',
          'A' => 'Uppercase character A',
          ' ' => 'escaped zero in double quotes',
          'a' => 'lowercase character A',
          'undef' => 'undefined value',
          'SCALAR(0x182fae4)' => 'escaped zero in non quotes',
          '0' => 'sigle quoted zero',
          '0' => 'escaped zero in sigle quotes'
        };
このエントリーをはてなブックマークに追加  


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:[Perl] テーブルによる文字置換

この記事のアーカイブ

全ての記事 »
2009年
全てのカテゴリ »
電算室 » 開発メモ
全てのタグ »

関連記事/トラックバック (全 1 件中、最新 5 件まで表示しています)

MTエンジニアブログ のスクリーンショット
タイトル
変数名の罠
Trackbacked at
2011/05/28 08:23
from
MTエンジニアブログ
概要
 Facebook 上の MT 関連コミュニティで次のような質問がありました。 <MTSetVarBlock name="folder-label"...

この記事にトラックバックを送るには?

寄せられたコメント (全 1 件中、最新 5 件まで表示しています)

Posted by
KenziKenzi
at
2020/02/28 18:00
ID
J.GNWXFs
ハッシュのキーを記述する括弧内に書いた裸の文字列は
単なる文字列の 'undef' になっちゃうみたいです。
括弧内で @{[undef]} するか或は変数に入れた undef値 をキーにすると、
警告は出ますが、代入されました。
ただし今度は空文字列 "" に変換されちゃいます。
[結果]
undefと書く: 文字列 'undef' と見なされる。
undef値: 空文字列に変換される。警告付き。
空文字列: キーに使える。

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。