Perl

ハッシュのキーを逆順にソートする - 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モジュ…

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

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

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

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

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

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

画像を「上下」反転させる - 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」関数を使用すれば一発である。

閏年か判定する - Perl

「Perl大技林」一覧に戻る 約4年に一度、2月29日が発生する閏年(うるうどし)かどうかを判定するには、次のロジックを素直に実装すれば良い。 4で割り切れる年は閏年 ただし、100で割り切れる年は閏年ではない しかし、400で割り切れる年は閏年である isLeap…

十二支の干支を求める - Perl

「Perl大技林」一覧に戻る 指定した年(西暦年)が、干支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)で何年かをプログラムで計算し求めたい。 ロジックは非常にシンプルである。 西暦を12で剰余算すると0の時に申(サル)が来る。ということで、申・酉・…

旧暦(太陰太陽暦)の月名を取得する - Perl

「Perl大技林」一覧に戻る 1月を日本では睦月(むつき)とも呼ぶ。このような旧暦の名称を取得するにはどうすれば良いだろう? 睦月から順番に配列に入れ、localtimeの4番目の戻り値をそのまま添え字として使用するだけで良い。忘れがちだが、localtimeが返…

画像の種類を判定する - Perl,ImageMagick

「Perl大技林」一覧に戻る GIFなのかJPEGかなど、画像がどのような保存形式か判定したい。基本的に拡張子はあてにならない場合があるため、実際にファイルの内容を解析した方がよい(しなければならない)状況などに役立つ。

基数変換を行う - Perl

「Perl大技林」一覧に戻る 2進数を10進数、10進数を16進数など、基数変換には「Math::BaseCalc」モジュールを使用すると楽に行える。Math::BaseCalcモジュールは別途インストールが必要な場合があるので注意。

半角英字のみかチェックする - Perl

「Perl大技林」一覧に戻る 何らかの事情により、半角の英語つまりアルファベット(a~z、A~Z)のみかをチェックしたい場合、どのようにしたら良いだろうか?これも正規表現で解決できる。

半角数字のみかチェックする - Perl

「Perl大技林」一覧に戻る 例えば郵便番号や電話番号などのチェックに、半角数字のみかをチェックをしたい。このような場合には、正規表現を用いると良い。

半角英数字のみかチェックする - Perl

「Perl大技林」一覧に戻る 入力内容が半角英数字のみかチェックしたい。これも正規表現で簡単に実現できる。「半角数字のみのチェック」「半角英字のみのチェック」の合わせ技だ。