サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
katsubemakito.net
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! « [vi] ファイルを復帰する | メイン | [vi] コピー&ペースト, カット&ペースト (copy, cut, paste) » カテゴリー:vi [vi] 文字の削除・行削除 (del) 最初は文字・行の削除を覚えておけば良い。一度にすべて覚える必要はないが、viでは削除にも様々な便利コマンドが用意されている。 ※動画挿入予定地 削除 コマンド 説明 x カーソル位置の文字を1文字削除する dd カーソルのある行を削除する 行数dd 指定した行数を削除する。 「5dd」なら5行を削除する。カーソルのある位置から下に向かっての行数となる。 d0 カーソル位置から行頭までを削除する d$ カーソル位置から行末までを削除する ※コマンドモードで入力すること。 ※コマンドモードへは「
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! « ハッシュに要素が存在するか調べる | メイン | ハッシュのキーでソート(並べ替え)する » カテゴリー:ハッシュ(連想配列) ハッシュを全て出力する ハッシュの内容を全て出力するには、いくつかの方法がある。 まずはもっともシンプルな方法。だが、もっとも使用しないだろう方法。ハッシュのキーと値がずらずら~とただ表示される print %ENV; ■while, each構文 while( ($name, $value) = each %ENV ){ print "$name,$value\n" } ■foreach, keys構文 foreach my $name ( keys %ENV ){ print "$name,$ENV{$name}\n"; } ■map, keys構文
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:リスト(配列) 配列の要素数を調べる 配列に今どれだけの要素が詰まっているかカウントしたい。これには大きく二つの方法が用意されている。 「$#配列名」とする方法と、スカラー値として値を得る方法の二つがある。前者と後者で得られる値が違う点に注意すること。「$#配列名」は配列のインデックス(添え字)に忠実で、「最大数 - 1」の結果が返ってくるのに対し、後者は最大数がそのまま返ってくる。 #!/usr/bin/perl ;# ;#配列の要素数を表示 ;# #---------------------------------------# #準備 #---------------------------------------# @array = (1..5); #1~5の値を入れ
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:Cookie [Cookie] 記録・セットする (Perl, CGI::Cookie) Cookieに書き込む方法は、CGIなどでHTTPヘッダに埋め込むか、HTMLのMETAタグ、JavaScriptなどで指定する方法がある。ここではCGI(Perl)でよく使用されているCGI::Cookieと呼ばれるモジュールを使用する。 ※掲示板などに書き込んだ後、再度訪れると自分の名前やメールアドレスがあらかじめセットされている場合がある。これは書き込みを行った際に、自分のブラウザにそれらの情報が埋め込まれたためだ。このようにサーバではなく、ブラウザに値を記録する仕組みを「Cookie」と言う。 #!/usr/bin/perl ;# ;#Cookieセット ;# use stric
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:文字列 文字列を文字コードへ変換する 「文字」を文字コードへ変換するにはord関数を用いれば良いが、「文字列」の場合はどうすれば良いのだろうか?ord関数の使い方を工夫してやれば良い。 単純に1byteずつ置換してやれば良い。この置換時にord関数を用いることになる。 #!/usr/bin/perl ;# ;#文字列の文字コードを取得 ;# use strict; #-- 文字コードを取得 --# print String2Bytes($ARGV[0]), "\n"; #--------------------------------------------# #文字列の文字コードを取得する #------------------------------------------
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ImageMagick 画像サイズを変更する [その2] (サムネイル・拡大縮小) サムネイルを作成するなど、画像を縮小・拡大したい。 画像の縦横比を考慮し、特定のサイズに収まるようにしたい。基本的にはその1で紹介したやり方で、width,heightの値の計算をちょちょいと工夫してやればよい。 めんどくさい事はどうでも良いという人は、miniMize関数(サブルーチン)をコピペして利用すれば良い。 ;# ;#指定サイズ以下にする(縦横比を考慮) ;# use Image::Magick; #-- 最終的な縦横サイズ --# my $max_width = 320; my $max_height = 250; #-- オブジェクト作成 --# my $image =
OpenSocial大技林(予) OpenSocialに挑戦するブログ。各SNSで見つけたソーシャルアプリの紹介も! 覚えながらやってるので間違ってたら教えてください(;´∀`) 前回は指定したURLの結果を取得しました。今回はその応用で外部のJSONを取得したいと思います。前回のサンプルでも取得はできますが、JavaScriptの変数として取ってこれるような機構がOpenSocialでは用意されているのです。 サンプルのアプリとして、Googleの画像検索の結果をJSONとして取得し表示する物を作成してみました。 ■実行結果 ・MySpace 前回との変更点は「gadgets.io.ContentType.TEXT」の部分を「gadgets.io.ContentType.JSON」とするくらいです。callback関数の引数にJSONがやってくるのも同じです。「Google Aj
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:デバグ エラーを表示する 実行しているCGIに致命的なエラーが発生した際に通常は「500 Internal Server Error」となり異常終了するところを、エラーメッセージなどを表示したい。CGI::Carpモジュールを利用すれば良い。 使い方は非常にシンプルで、CGI::Carpモジュールをuseする際に'fatalsToBrowser'を渡してやれば良い。 ;# ;#異常終了時にエラーメッセージを表示する ;# use strict; use CGI::Carp qw(fatalsToBrowser); #-- わざと異常終了 --# die('debug now'); もしくは次のような簡単なCGIをあらかじめ設置、別ウィンドウで実行しておきエラーが発生したら再読
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! 配列の値をキーにしたハッシュを作成する 配列Aに入っている全ての値を、ハッシュHのキーにしたい。これは一行で解決する。 ハッシュのキーを挿入(追加)した順番通りに取り出す 通常、ハッシュに入れた値をkeysなどを使って取り出すと、配列のように追加した順番通りに並ぶことはまずないといってもよいし、期待してはならない。この問題を解決するには、つまりハッシュに順番を保持させる簡単な方法は「Tie::IxHash」モジュールを使用することだろう。 ハッシュを高速に操作したい (データ追加) ハッシュに大量のデータを挿入する際、プログラムの動作を出来る限り早く(高速に)、処理を軽くしたい。実は一行付け足すだけで、かなり違ってくる技がある。 配列(リスト)から重複を取り除く 配列内の同じ値を取り除きたい
OpenSocial大技林(予) OpenSocialに挑戦するブログ。各SNSで見つけたソーシャルアプリの紹介も! 覚えながらやってるので間違ってたら教えてください(;´∀`) MySpaceの「PersistenceAPI」をいじっていたのですが、OpenSocialの仕様通りにコードを打ってもうまく動作してくれなく憤慨していましたw で、色々調べていたら、いくつかクセのような物が分かってきたのでメモ代わりに公開しておきます。(他のコンテナで起きるかは未検証) newUpdatePersonAppDataRequestにはJSONで渡さないとエラー getId()の戻り値は’myspace.com:’+ユーザーIDだが、、 getData()で取得した配列のキーは、ユーザーIDのみ 保存できる最大長は1024byteまで もうFireBugマンセーな世界でしたw ■その1 n
翔泳社さんから事前ミーティングのお知らせをいただいたので、先週行ってきました。 って、よく考えると本番はもう今週なのか(^^; -------------------------------------------------------------------- 【デブサミ版 Google Hackathon 事前ミーティング】 -------------------------------------------------------------------- 日時:2009年2月4日 18:30 - 21:00(開場 18:00) 場所:東京都渋谷区桜丘町26-1 Googel 東京オフィス 7F 花の宴 内容: Hackathon の説明 グループ分け Ideathon (OpenSocial アプリケーションのアイデアを考えます) Googleのオフィスもこれで
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ディレクトリ コマンド [Linux]ディレクトリを再帰的にたどりファイル一覧を取得したい 特定のディレクトリ配下を再帰的にたどりファイル一覧を表示などしたい。 階層の深さが決まっていればかんたんに取得できる方法もあるが、階層はまちまちで、今後もダイナミックに変化していく。このような場合にはどうすれば良いだろうか。 方法はいくつかある。 Linuxなどのコマンドを使う オリジナルの関数を用意する File::Findモジュールを使用する ○Linuxなどのコマンドを使う 表示するだけであれば、お手軽なのは ls のオプションを利用する方法である。Rオプションをつけて実行すると、ディレクトリがあった場合、そのディレクトリ以下のファイルも再帰的に表示してくれる。 以下の実行例では2階
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! « エラーを表示する | メイン | 実行されたSQLを自動的にログへ記録する (PostgreSQL) » カテゴリー:メッセージダイジェスト(ハッシュ) SHA1の値を取得する MD5などよりも安全性の高いと言われるSHA1の値を取得したい。Digest::SHA1モジュールを用いればあっという間に実現できる。 Digest::SHA1モジュールには三種類の関数(メソッド)が用意されており、用途によって使い分けることができる。 ;# ;#SHA1の値を取得する ;# use strict; use Digest::SHA1 qw(sha1 sha1_hex sha1_base64); #-- 文字列設定 --# my $str = 'sushi geisha tenpura'; #--
XMLファイル中にJavaScriptなどを記述することも可能ですが、外部ファイルを読み込むことも可能です。 ■実行結果 ・MySpace IFRAMEとして呼び出され、引数として各種情報が渡されます。 ■ソース(XML) typeに"url"が指定された場合、その他の指定は一切無視されるそうです。 ■ソース(PHP) 今回テストで使用したPHPです。渡された引数(クエリー)をすべて表示します。 外部ファイルのテスト 渡されたクエリーをすべて表示する。 $value){ print "$key : $value \n"; } ?> ■参考ページ Google Code - ガジェット http://code.google.com/intl/ja/apis/gadgets/docs/fundamentals.html ガジェットに type="url" コンテンツ タイプが含ま
OpenSocial大技林(予) OpenSocialに挑戦するブログ。各SNSで見つけたソーシャルアプリの紹介も! 覚えながらやってるので間違ってたら教えてください(;´∀`) ■ソース(XML) サンプルは、テキストエリアに入力したHTMLをプレビューできる簡易HTMLエディター。最初に読み込んだ時と、プレビューボタンをクリックする度にガジェットの高さを調整してくれます。 ModulePref内で"dynamic-height"機能を呼び出すよう定義し、高さの調整をしたい箇所で gadgets.window.adjustHeight();を呼び出すだけです。 <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="HeightTest2" height="100"> <Require featu
makeRequest関数を利用すると、指定したURLのコンテンツを取得することができます。makeRequestを利用すると結果を一定時間キャッシュしてくれます。開発中はうっとおしいのですがw ■実行結果 ・MySpace ■ソース(XML) サンプルは指定したURLを取得し表示する簡易プロキシです。 <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="ProxyTest" height="300"> <Require feature="dynamic-height"/> </ModulePrefs> <Content type="html"><![CDATA[ <form> URL:<input type="text" id="url" /> <input type="button" va
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ハッシュ(連想配列) ハッシュの値でソート(並べ替え)する ハッシュのキーでソートするのは、さほど難しくないが、値で並べ替えるにはどうすればよいだろう?同様にsort関数を用いれば良い。 ;# ;#ハッシュを値でソートして表示 ;# #------------------------------# #初期化する #------------------------------# %hash = ( 'A' => '1_オレンジ' , 'B' => '4_りんご' , 'C' => '2_マスカット' , 'D' => '3_バナナ' ); #------------------------------# #値で並べ替えて表示 #---------------------------
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ImageMagick 画像の種類を判定する GIFなのかJPEGかなど、画像がどのような保存形式か判定したい。基本的に拡張子はあてにならない場合があるため、実際にファイルの内容を解析した方がよい(しなければならない)状況などに役立つ。 ;# ;#画像の種類を判定する ;# use Image::Magick; #-- ImageMagick --# my $image = Image::Magick->new; #-- 画像を読込む --# $image->Read('image'); #-- 種類を取得 --# my $type = $image->Get('magick'); 画像を読み込んだ後、ImageMagickが自動的にファイル形式を判定してくれる。拡
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ハッシュ(連想配列) リスト(配列) 配列(リスト)から重複を取り除く 配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。 ;# ;#配列の重複を取り除く ;# #-- 初期化する --# @array = ( '東京', '大阪', '広島', '京都', '東京' , '広島', '横浜', '大阪', '京都', '島根' ); #-- 重複削除 --# @uniq = uniqArray(\@array); #-- 表示 --# foreach my $value ( @uniq ){ print "$value\n"; } #------------------------------# #配列(リスト)から重複を取り除く #-----------
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ハッシュ(連想配列) ハッシュのキーでソート(並べ替え)する ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。 以下はハッシュのキーを文字列としてソートする方法になる。 ;# ;#ハッシュをソートして表示(文字としてソート) ;# #------------------------------# #初期化する #------------------------------# %hash = ( 'orange' => 'オレンジ' , 'apple' => 'りんご' , 'muscat' => 'マスカット' , 'banana' => 'バナナ' ); #------------------------------# #並べ替えて表示 #
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:svn_propset 実行可能な属性をファイルに付加する(svn:executable) Subversionで、ファイルに実行可能な属性を付加したい。 複数のOS間で運用しているといつの間にか設定したパーミションが外れてしまう問題を解決したい。これはSubversionで属性の設定を行えばよい。 Subversion自体に、このファイルは「実行可能なファイル」であると記憶させてやれば解決する。Windows上では別段変化はないが、Linuxなどでcheckoutするとパーミションが設定された状態でファイルがセットされる。 $ ls receive.cgi settag.cgi $ svn propset svn:executable ON settag.cgi pro
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:CGI 重複しないユニークなIDを生成する (Perl, ID, SHA1・MD5) ユーザーを識別するため、ファイルをサーバに保存するなど何らかの理由により重複しないIDを生成したい場合にはどうすれば良いだろうか? 通常のCGIであれば、CGI::Sessionなどを用いる方法もあるが、次のようなコードを書くことでも実現できる。 以下のコードを動かすには、Digest::SHA1モジュールがインストールされていることが必要である。 ;# ;#セッションID ;# use Digest::SHA1 qw(sha1_hex); print genUniqID(); #----------------------------------------------# #■ユニークな
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! Twitterで友達のステータスをまとめて取得する Twitterの公式APIを利用して、Perlから友達のステータスを過去分などまとめて取得することが可能だ。Net::Twitterモジュールを用いる。 Twitterの友達情報(friends)を取得する Twitterの公式APIを利用し、Perlから友達(friends)の情報を取得することが可能だ。Net::Twitterモジュールを使用すれば良い。 Twitterのステータスを更新する Twitterの公式APIを利用して、Perlからステータスを更新することが可能だ。Net::Twitterモジュールを使えばいとも簡単に実現できる。
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:文字列 半角カナを全角カナへ変換する 半角カナが含まれていたらエラーを出すのはちょっと不親切だ。半角カナを自動的に全角カナへ変換したい。 半角カナを全角カナへ変換する機能は、Jcodeモジュールが用意してくれている。 ;# ;#半角カナを全角カナへ ;# use Jcode; print Jcode->new('アイウエオ', 'sjis')->h2z->sjis; 「アイウエオ」の部分を半角カナに直して実行する。 「h2z」が変換をしているメソッド、最後の「sjis」とある部分が最終的に返却される文字コードとなる。newをする際に'sjis'といった具合に文字コードを指定しているのは、半角カナが含まれている場合に文字コードの自動判定が期待通りに動作しない事への対策である
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:ディレクトリ [Perl]ディレクトリを再帰的にたどりファイル一覧を取得したい その1 以下のエントリーの続き。 [Linux]ディレクトリを再帰的にたどりファイル一覧を取得したい http://katsubemakito.net/cgiperl/2006/10/_perl_1.html 特定のディレクトリ配下を再帰的にたどりファイル一覧を表示などしたい。 階層の深さが決まっていればかんたんに取得できる方法もあるが、階層はまちまちで、今後もダイナミックに変化していく。このような場合にはどうすれば良いだろうか。 今回はPerlでの実装方法について解説する。 ○オリジナルの関数を用意する 再帰については見てもらった通り、関数(サブルーチン内)で自分自身を呼び出せばOKだ。 ;#
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:リスト(配列) 配列,リストからある条件と一致した値を取出す (Perl, grep) あるリストから、希望する条件に一致した値だけを取り出したい場合がある。for,while,foreachなどのループを使う方法以外に、効率の良いやり方が知りたい。 ;# ;# リストからある条件と一致した値を取出す ;# @array = ('apple', 'orange', 'pineapple'); #-- "apple"が含まれる物を表示する --# @result = grep(/apple/, @array); #-- 結果表示 --# foreach(@result){ print ; print "\n"; } __END__ ○実行結果 apple pi
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! 画像サイズを変更する [その2] (サムネイル・拡大縮小) サムネイルを作成するなど、画像を縮小・拡大したい。 画像の縦横比を考慮し、特定のサイズに収まるようにしたい。基本的にはその1で紹介したやり方で、width,heightの値の計算をちょちょいと工夫してやればよい。 画像サイズを変更する [その1] (サムネイル・拡大縮小) サムネイルを作成するなど、画像を縮小・拡大したい。 縮小率(拡大率)などが決まっている場合、例えば一律50%に縮小するといったことは、非常にかんたんに行える。 画像形式を変換する (ベリー簡単!) 例えばGIFをJPEGに変換する、このように異なる画像形式に変換する処理をImageMagickを利用すると、信じられないくらい簡単に行える。 画像の横幅、高さを取
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:Apache Apacheのバージョンアップを行う(Linux) ここではソースからコンパイルしバージョンアップする方法を簡単に解説する。基本的には再コンパイルするだけ。『やり直し』を行う場合もこの手順を参考にすれば良い。 手順としては大まかに以下のようになる。ようはコンパイル後に生成された実行ファイルで上書きしているだけなのだ。 既存ファイルのバックアップ 前回のコンパイルオプションの確認 ソースファイルのダウンロード・解凍 configure make httpd stop sudo make install httpd start 以下に示すのは1.3系の例だが、2.xの場合はディレクトリ名を「apache2」と読み替えれば良い。 ■既存ファイルのバックアップ 最低
CGI・Perl例文集 CGI(Perl)のサンプルプログラムをコピー&ペーストで使える便利集! カテゴリー:アラカルト タグクラウド(TagCloud)を簡単に生成する タグクラウド(TagCloud)を生成したいが、かんたんに行えるモジュールはないだろうか?そんな時はHTML::TagCloudモジュールを利用すれば良い。 タグクラウドとは特定のキーワードに重み付けをし、重要な物は大きく表示しそうでない物は小さく成るというシンプルなものだ。いわゆるWeb2.0系のサイトなどで多用され、最近のMovableTypeでも実現できるようだ。 タグクラウドの例:del.icio.us, flikr PerlではHTML::TagCloudというモジュールがCPANにあがっているのでそれを利用すれば簡単に実現できる。 ;# ;#タグクラウドを生成する ;# use strict; us
次のページ
このページを最初にブックマークしてみませんか?
『katsubemakito.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く