
No.1ベストアンサー
- 回答日時:
my $arrayref = $dbh->selectall_arrayref('select * from user_info', {Slice => +{}});
print Dumper($arrayref);
---
$VAR1 = [
{
'name' => 'Alice',
'id' => '1'
},
{
'name' => 'Bob',
'id' => '2'
}
];
こんにちは!
なんとselectall_arrayref()でハッシュの配列を受け取ることができたのですね。
selectall_arrayref()の柔軟な用法を知らずに格好悪い質問をしてしまいました。
selectall_arrayref()の第二引数に戻り値の形式を指定できるのですね!
ハッシュの配列がほしいときは{Slice => {}}とするのですね。
このとき{}ではなく+{}とすると、どうなるか試してみたのですが違いは分かりませんでした。
{}の前に+を付けるとどうなるのでしょうか???
また便利な関数Data::Dumper()を覚えました(^_^)b
No.2
- 回答日時:
> このとき{}ではなく+{}とすると、どうなるか試してみたのですが違いは分かりませんでした。
> {}の前に+を付けるとどうなるのでしょうか???
+{}と書くとハッシュリファレンスであると明示できます。
数は多くないですが、{}がハッシュリファレンスなのか、そうでないのか曖昧になることがあります。他人が書いたコードを見てビックリしないぐらいには理解したほうがよいでしょう。
use strict;
use warnings;
use Data::Dumper;
use feature 'say';
sub proto_func ($) {
say 'proto_func($)';
}
proto_func {say 'hoge'};
# Odd number of elements in anonymous hash at foo.pl line 11.
proto_func +{a => 1};
sub hashref_ambiguous { {@_} } # return {@_}
sub hashref_strict { +{@_} } # return +{@_}
my $ambiguous = hashref_ambiguous( 'a', 'b' );
my $strict = hashref_strict( 'a', 'b' );
print Dumper($ambiguous);
# $VAR1 = 2;
print Dumper($strict);
# $VAR1 = {
# 'a' => 'b'
# };
{}や+{}はselectall_arrayref()の引数専用の書き方ではなくPerl全体としての書き方だったのですね。
{}は空ハッシュ、+{}は空ハッシュへのリファレンスを意味していたのですね。
ご紹介のコードは+の有無によって違いが発生する例ですね。
このコードを解読するのもいささか時間がかかりました^^;
新しく覚えたワードはfeatureプラグマ、say関数です。
しかしながら配列の各要素はスカラー値と決まっているのでselectall_arrayref()の第二引数に書くときは+を省略して{}と書けるといったところでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Perlでファイルの末尾から指定...
-
テキストファイルで提出とは?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックデジットについて
-
短いハッシュの作り方
-
まったく同じファイルのハッシ...
-
ハッシュ検索はなぜ速い
-
ハッシュ値が一致したデータは...
-
ハッシュマーク以降のアドレス取得
-
ハッシュリストって単にハッシ...
-
ハッシュ値によるファイルの同...
-
英語でのシャープとコメの呼び...
-
計算されたハッシュ、レポート...
-
列挙型と連想配列の違いを教え...
-
文字列を変数名として扱う方法
-
perl入門
-
一意(ユニーク)かつ、ソート...
-
連想配列のサイズ制限
-
Perlでの配列のソートについて...
-
ハッシュ値を取ったらその取っ...
-
Perlで変数に代入された文字の...
-
正規表現を使ってコードを短く...
-
エラーが出ます。どこが間違っ...
おすすめ情報