CGI・Perl例文集

ハッシュに追加した順番通りに取り出す - Perl

「Perl大技林」一覧に戻る 通常、ハッシュに入れた値をkeysなどを使って取り出すと、配列のように追加した順番通りに並ぶことはまずないといってもよいし、期待してはならない。この問題を解決するには、つまりハッシュに順番を保持させる簡単な方法は「Tie:…

ハッシュを高速に処理する - Perl

「Perl大技林」一覧に戻る ハッシュに大量のデータを挿入する際、プログラムの動作を出来る限り早く(高速に)、処理を軽くしたい。実は一行付け足すだけで、かなり違ってくる技がある。 keysは本来ハッシュのキーを取り出す際に利用するのだが、これから登録…

配列内の重複を取り除く - Perl

「Perl大技林」一覧に戻る 配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。

ハッシュのキーと値を全て取り出す - Perl

「Perl大技林」一覧に戻る ハッシュの内容を全て出力するには、いくつかの方法がある。 代表的な3つの方法 まずはもっともシンプルな方法。だが、もっとも使用しないだろう方法。ハッシュのキーと値がずらずら~とただ表示される print %ENV; 次に代表的な3…

ハッシュにキーが存在するか調べる - Perl

「Perl大技林」一覧に戻る ハッシュに指定したキーが存在するかどうか調べたい。exists関数を用いれば良い。 exists関数は、指定したキーが存在すれば真(true)を、存在しなければ偽(false)を返す。

ハッシュのキーでソートする - Perl

「Perl大技林」一覧に戻る ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。 以下はハッシュのキーを文字列としてソートする方法になる。

ハッシュのキーを逆順にソートする - Perl

「Perl大技林」一覧に戻る ハッシュのキーを並べ替えた後、反転させるにはこれも文字通りreverse関数を使用すればよい。

ハッシュの値でソートする - Perl

「Perl大技林」一覧に戻る ハッシュのキーでソートするのはさほど難しくないが、値で並べ替えるにはどうすればよいだろう?同様にsort関数を用いれば良い。

ハッシュに要素を追加する - Perl

「Perl大技林」一覧に戻る ハッシュ(連想配列)に値を追加したい。これはシンプルに代入してやれば良い。 初期化する際には一気にまとめて代入することができる。その後は通常は一つずつ名前(キー)と値を追加していく

ハッシュから要素を削除する - Perl

「Perl大技林」一覧に戻る ハッシュから要素を削除するには、delete関数を使用する。 delete関数に引数として「$hashu{キー名}」として渡せば、キー名の要素をその場で削除してくれる。

文字列を一文字ずつ分割する(全角半角混合) - Perl

「Perl大技林」一覧に戻る 文字列を分解し、1文字ずつ処理を行いたい。全角文字、2バイト文字が含まれるなら、Jcode.pmを用いるのがお手軽だ。「指定バイト数で自動的に改行する」で取り上げた、Jcode.pmの「jfold」メソッドを活用すれば良い。 jfoldは指定…

アルファベットを大文字または小文字に変換する(全角半角混合) - Perl

「Perl大技林」一覧に戻る 文字列内のアルファベット(英字)を、大文字または小文字に変換したい。 全角文字、半角文字が一緒になっている場合はJcode.pmを利用すれば良い。 trメソッドを用いて、単純に置換してやれば良い。置換条件に半角文字の指定を加えれ…

アルファベットを大文字または小文字に変換する(半角のみ) - Perl

「Perl大技林」一覧に戻る 文字列内のアルファベット(英字)を、大文字または小文字に変換したい。 標準の「uc」「lc」関数を使用すれば良い。 それぞれ次のような意味を持っている。 uc 大文字へ(upper char) lc 小文字へ(lower char)

アラビア数字をローマ数字へ変換する - Perl

「Perl大技林」一覧に戻る アラビア数字(1~9)を、ローマ数字(I~X)へ変換したい。またはその逆を行いたい。Romanモジュールを使用すれば良い。 Romanモジュールは標準ではインストールされない。CPANなどから入手しインストールする必要がある。Romanモジュ…

実行可能な属性をファイルに付加する(svn:executable) - Subversion

解説 参考文献 解説 Subversionでファイルに実行可能な属性を付加したい。 複数のOS間で運用しているといつの間にか設定したパーミションが外れてしまう問題を解決したい。これはSubversionで属性の設定を行えばよい。

文字列を一文字ずつ分割する(半角のみ) - Perl

「Perl大技林」一覧に戻る 文字列を分解し、1文字ずつ処理を行いたい。半角、1バイト文字のみ(英数字など)だけなら、標準のsplit関数を用いれば良い。 splitの分割条件で何も指定しないと、1byteずつ分割してくれる。

画像を木炭画に変換する - ImageMagick, Perl

「Perl大技林」一覧に戻る 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめください。 befor after

画像を油絵に変換する - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像を油絵のように変換したい。OilPaintメソッドを使用すれば一発で実現できる。 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめください。 befor after

OSの時計時刻を変更したい - Linux

解説 解説 Linuxのシステム時間を変更したい。 通常はntpを使用して自動的に時刻合わせをすればよいのだが、ポートが閉じている、ネットワークにつながっていないなど何らかの理由でntpが使用できない場合は、117の時報を聞きながら標準でインストールされて…

画像を「上下」反転させる - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像を上下反対にしたい。このように上下に180度回転させたい場合にはFlipメソッドを活用しよう。 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめください。 befor after

画像を「左右」反転させる - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像を左右反対にしたい。このように左右に180度回転させたい場合にはFlopメソッドを活用しよう。 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめください。 befor after

画像を「上下」「左右」同時に反転させる - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像を「上下」「左右」同時に反対にしたい。FlipメソッドとFlopメソッドを同時(順番)に使用すれば良い。ImageMagickは非常に柔軟にコードを書くことができる。 実行結果 ※サンプル画像は有料の素材集を利用…

画像の角度を指定し回転する その1 - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像の角度を指定し、その角度分回転させたい。FlipメソッドとFlopメソッドはそれぞれ180度の回転しかできないが、Rotateメソッドを用いれば自由に角度を調整できる。 実行例 befor after

画像の角度を指定し回転する その2 - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像の角度を指定し、その角度分回転させたい。基本的にはその1と同じ要件だが、今回は回転した際に発生する余白に色をつけたい。 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめくださ…

画像にノイズを加える - Perl,ImageMagick

「Perl大技林」一覧に戻る ImageMagickを使用し、画像にノイズを加えたい。AddNoiseメソッドを使用すれば簡単に実現できる。 実行例 ※サンプル画像は有料の素材集を利用しています。転載はおやめください。 befor after

画像の横幅・高さを取得する - Perl,ImageMagick

「Perl大技林」一覧に戻る 画像の縦横のピクセル数をそれぞれ取得したい。 あらかじめサイズが分かっていない場合など、縦横比を維持したまま拡大・縮小を行うには現在のサイズを取得するところから処理を書き始める必要がある。

画像形式を変換する (ベリー簡単!) - Perl,ImageMagick

「Perl大技林」一覧に戻る 例えばGIFをJPEGに変換する、このように異なる画像形式に変換する処理をImageMagickを利用すると、信じられないくらい簡単に行える。

画像サイズを変更する(サムネイル作成・拡大縮小) その1 - Perl,ImageMagick

「Perl大技林」一覧に戻る サムネイルを作成するなど、画像を縮小・拡大したい。 縮小率(拡大率)などが決まっている場合、例えば一律50%に縮小するといったことは、非常にかんたんに行える。次の例では、読み込んだ画像の縦、横のピクセル数を取得し、50%の…

画像サイズを変更する(サムネイル作成・拡大縮小) その2 - Perl,ImageMagick

「Perl大技林」一覧に戻る サムネイルを作成するなど、画像を縮小・拡大したい。 画像の縦横比を考慮し、特定のサイズに収まるようにしたい。基本的にはその1で紹介したやり方で、width,heightの値の計算をちょちょいと工夫してやればよい。 めんどくさい事…

ファイルの詳細な情報を取得する(stat) - Perl

「Perl大技林」一覧に戻る ファイル容量(サイズ)や更新日など、ファイルの詳しい情報を取得したい。これはPerlが標準で用意している「stat」関数を使用すれば一発である。