-PR-
解決
済み

バイナリデータの操作

  • 暇なときにでも
  • 質問No.86551
  • 閲覧数246
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 50% (4/8)

Perlでバイナリデータの操作(たとえば画像のピクセル部分の変更)をする場合
配列に一つ一つ数値を入れて操作するのと
スカラでデータをいっぺんにパック(?)して操作するのとでは
どちらがいいのでしょうか?

ようはC言語のchar配列の操作のようなことがしたいのですが。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル10

ベストアンサー率 64% (73/113)

パックって、packのことでしょうか?
まとめた形のまま、たとえばファイルに保存したり、読み出したり
するにはそれが便利だと思いますし、メモリも配列よりは
少なくなると思います。

しかし、配列のように個々の値を変えたりするなら、結局
unpackして配列として扱わなければならなくなりますね。

数値が整数と決まっているのなら、vecを使う手も考えられます。
vec($aaa, 0, 8) = 0xFF;
vec($aaa, 1, 8) = 0x3C;
vec($aaa, 2, 8) = 0xA3;
.....
と代入しておき、あとで$aaaから
vec($aaa, 1, 8) で、オフセット1の場所に入れた0x3Cの値を取り
出す、などということができます。これが一番メモリ効率としては
いいように思います。
詳しくは、perldoc -f vec をご覧ください。
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ