sironekotoroの日記

Perl で楽をしたい

続・はじめてのPerl 第2版 第6章 複雑なデータ構造の操作

デバッガ

  • 初めて使った・・・かな?
  • ほかの初心者本でも使ったかも知れないけど、覚えていない
  • ステップ実行はめんどくさい

Data::Dumper

  • これがなかったら、Perl挫折してたと思う

Data::Printer

  • 初めてみた。
  • 慣れは必要だけど、Data::Dumperの出力よりも見やすいかも。

Data::Dumperの出力を変数にして、それをevalで評価して構造体に戻す?

  • すげぇ、そんなこと考えたことなかったわ

マーシャリング

  • 初見初耳の単語

    マーシャリングとは、複雑なデータをあとで再構築できるようにバイトストリームとしてファイルに書き込める形式に変換することです。

  • ほえー
  • なお、当方の環境では、そのままタイプしても予約語エラーだよーってなエラーメッセージが出た。
    Unquoted string "freeze" may clash with future reserved word
  • 関数を明示的に指定したら動くようになった
    use Storable qw(freeze thaw nstore retrieve);

シャローコピーとディープコピー

  • うむ、これも初見初耳

    配列やハッシュのシャローコピーとは、一階層目の値だけコピーすることです

  • でも、いまのうちの使い方ではこれを意識して利用するってシーンは少なそう。

YAMLJSON

  • これは名前だけ聞いたことがあった
  • みて何となく「あー、こういうデータ構造だなー」と解る感
  • なるほど、Perlでサーバサイドで処理した結果をjson形式にしてjavascriptに渡すわけか
  • AJAXすげー!って騒がれた頃にjavascriptの初心者本みたけどさっぱりわからなくて挫折した思い出
  • 今なら再チャレンジできそう
  • でも、その前にPerl

練習問題が理解できない

  • 読み出したのと同じファイルに書き戻すのなんで?
    • ログローテーションとか想定してない場合ってことなのかな?
  • 毎日の、っていうならログのデータに日付とかが必要なんじゃないだろうか
  • 同じファイルにバイナリで書き込んで、そのあとに追加されるログはテキスト???
  • うちの読解力が低いんだろうか
  • 答案のスクリプトみてみる
    • バイナリ形式で保存されてるログをretrieveでPerlのデータ構造にして読み込み
    • それをwhileで整形!?
  • だめだ解らん。飛ばして先に進む。