2011-01-17 3 views
2

現在、FRONTIER :: CLIENTモジュールを使用してPerlでクライアントAPIを作成しています。私はPerlで次のようなことをしようとしています:Perlのハッシュマップ

HashMap<Integer, String> message = (HashMap<Integer, String>)client.execute("APIWrapper.login"); 
System.out.println(message.get(1000)); 

私は同じ考え方をPerlで実装しますか?

答えて

7

ハッシュマップは、ネイティブのperlデータ構造です。ハッシュ記号%で宣言された変数は、キー値のペアを格納するハッシュです。 Perl data typesに関するこのドキュメントを参照してください。 Perl Data Structures Cookbookも参照してください。

編集

See this example

# This can be anything which returns pairs of strings 
my %login_message = getData(); # ('key1' => 'value1', 'key2' => 'value2'); 

for my $key (keys %login_message) { 
     print "key: $key, value: $login_message{$key}\n"; 
} 

sub getData { 
     return ('key1' => 'value1', 'key2' => 'value2'); 
} 

出力:

key: key2, value: value2 
key: key1, value: value1 
+0

私は以下のことを思いついたが、私はこの例外がある:「WANTED DATA、GOT TAG VALUE。私の%login_message = {$サーバー - >呼び出し( "APIWrapper.loginRequest")}; while((my $ key、my $ value)= each%login_message) { "key:$ key、value:$ login_message {$ key} \ n"; } – Gruther

+0

上記の私の編集を参照してください。 –

+0

これは私が思いついたものです:%login_message =($ server-> call( "APIWrapper.loginRequest"、@credentials)); for my $ key(キー%login_message){ "key:$ key、value:$ login_message {$ key} \ n"; }また、出力は同じままです:WANTED DATA、GOT TAG 'VALUE' – Gruther

4

次のコードは、Perlでハッシュの使用例である:

my %data = (
    red => 1, 
    blue => 37, 
    green => 99, 
); 

print $data{'red'}, "\n"; 
+0

あなたの投稿のためのおかげでみんな。私はバグを修正することができました。問題はフロンティアモジュールにありました。私はXML :: RPC :: FASTに切り替えました。 整数が9文字を超えないのはなぜですか。 PerlやBigintでLong整数を見つけることはできますか? – Gruther