プログラミング言語として Perl を使った方法を学習される方を対象として、 Perl によるプログラム記述方法について解説します。 Perl のプログラミングとしては CGI として Web サーバと連携した利用方法がよく使われますが、まず単独で動作するプログラムの作成を通して Perl の文法などについて学習していきます。
とほほのperl入門 トップ > とほほのperl入門 概要編 perlとは 特徴 perlのバージョン 入手方法 実行方法 引数指定 ファイル指定 自己完結型 標準入力読み込み型 基礎知識 簡単な実行例 これだけは覚えて 定数・変数・値 数値 文字列 エスケープシーケンス(\) スカラー変数($XXX) 配列(@XXX) 連想配列(%XXX) 変数名に使える文字 数値と文字列 真(true)と偽(false) 定義済みと未定義 省略時の変数($_) 環境変数($ENV{'XXX'}) コマンド引数($ARGV) シグナル($SIG{'XXX'}) その他の特殊変数($X) バイナリデータ 演算子 代入 算術演算子 ビット演算子 数値比較演算子 文字列比較演算子 条件演算子 マッチング 文字列連結 文字列置換 繰り返し演算子 範囲演算子 ファイル検査 制御構文 if elsif else文
Perl is a programming language suitable for writing simple scripts as well as complex applications — see https://www.perl.org. Strawberry Perl is a perl environment for MS Windows containing all you need to run and develop perl applications. It is designed to be as close as possible to perl environment on UNIX systems. It includes perl binaries, compiler (gcc) + related tools, all the external lib
UNIX/Linux の部屋 に、bash の内部コマンド select コマンド を追加しました。メニュー形式の選択肢を提示し、ユーザに選ばせることができるコマンドです。
12位のPadreは最近活発に開発が続けられているPerl製のIDE。16位のAcmeはいわゆる「ネタ」系のモジュールを入れておく名前空間なのですが、ここで筆者の目を引いたのは15位にランクインしたDevelという名前空間。 これは、1996年リリースのPerl 5.002で導入されたDevel::SelfStubberを筆頭に、2000年に初お目見えした5.6系列でコア入りしたDevel::DProfやDevel::Peek、2002年の5.007003でコア入りしたDevel::PPPortなど、もともとはかなり高度な開発者向けのツールを入れておく名前空間でした。 典型的なDevel系モジュールであれば、perlコマンドの-dスイッチといっしょに使うと「Devel::」という名前空間を省略できる、という特徴があるくらいPerlの内部に密着した名前空間ですから(たとえば2008年に登場し
皆さんこんにちは。 今回から数回にわたって、8月20日(土)に、東京ドームのすぐそばにある文京シビックホールで開催する軽量言語のイベントLL Planetsを紹介する記事を書いてゆくことになりました。初回となる今回は、「メタプログラミングの光と闇」というパネルセッションについて紹介します。 メタプログラミングとは 「メタプログラミング」という言葉自体は、比較的多くの方が耳にしたことがあるはずです。「メタ」とはもともと「高次の」「~を超えた」という意味を持つギリシャ語です。接頭辞なので名詞などの前に付けて使います。たとえば「メタ小説」と言えば小説自体を題材にした小説ですし、「メタ認知」と言えば認知という行為自体を認知するため手法を指します。ある手法や事象を入れ子のように内包してより高次にし、客観化することを「メタ化する」などと言ったりします。Webの世界でよく聞く「メタデータ」も、デ
mixiのアーキテクチャパターン 2011年4月現在、mixiは2004年2月のサービス開始から7年以上をかけて、最適化、バグ修正、新機能リリースなどを続けています。(2)では、こういった状況の中で、安定したサービスをみなさんにお届けするために取り入れているアーキテクチャ設計上の工夫や、失敗を修正していくための品質評価手法を紹介します。 システムの境界と階層化 mixiでは個々の機能について、次のようなパッケージレイアウトを採用しています。 Mixi::Voice::* つぶやき機能に関するモジュール群 Mixi::Video::* ビデオ機能に関するモジュール群 Mixi::Diary::* 日記機能に関するモジュール群 Mixi::Home::* ホーム表示機能に関するモジュール群 以降では、これらのモジュールの集まりを「コンポーネント」と呼びます。これらのコンポーネントは、相互に連
昨日、本日(10月14日、15日)の2日間にわたり、YAPC::Asia Tokyo 2011が開催されています。本稿では、このYAPC::Asia Tokyo 2011 2日目の模様を随時レポートしていきます! ※セッションすべてをレポートするわけではありません。ご了承ください。 本日はあいにくの雨模様ですが、開始時間にはやんできたようです。雨にぬれてしまった方は、もしよろしければ着替えにTシャツを買ってみてはいかがでしょうか、との話がされていました(受付の隣で販売されています)。 Kazuho Okuさん「Unix Programming with Perl 2」 2日目の最初のトークは、奥さんによる正しいコードを書くノウハウについてのトークでした。奥さんは昨年のYAPCでも同様のタイトルでお話しされており、今回はその続編に当たる内容でした。 まず、IPC::Open3を使った
一見Emailアドレスにマッチする正規表現を組み立てるのは簡単そうに思えますが、RFC 5322に厳密に準拠した正規表現を創りだそうとするととんでも無い努力が必要となるようです。 「Email Address Regular Expression That 99.9% Works」は、様々なプログラミング言語ごとに、Emailアドレスに99%マッチする正規表現を掲載したサイトで、例えばPerl 5.10より前のバージョンのPerl用として、掲載されている長大な正規表現を見れば、その難易度の高さを確認することができます。 正規表現にはなんの解説もなくどのような意図をもって作られたのか説明はありません(よって99%マッチするかどうかは本当のところは不明)。ちなみに日本語で読める貴重な情報「Perlメモ」では、「perl5.6.0以前の perl ではメールアドレスの正規表現を正確に記述すること
今年のYAPC::Asia、いかがでしたか? 先日開催されたYAPC::Asiaはいかがでしたか? 筆者はあいにくそれほど多くのセッションに参加できたわけではないのですが、この連載ですでに取り上げたもの、まだ取り上げていないもの、そして前回原稿を書いたときにはまだ存在すらしていなかったものを含めて、有意義なセッションがたくさんありました。おかげさまで筆者も当面ネタに困ることはなさそうです。 とはいえ、あまりに旬なモジュールについては、情報の流れが速すぎて、のろまな筆者では追い切れませんので、今回と次回は、筆者が今年のYAPC::Asiaでもうひとつ発表しようかと思っていたネタをしっかりまとめておこうと思います。 ActivePerlの興隆 PerlはもともとUnixで使われていたさまざまなツールのよいところを集めて作られた言語です。だから、Perlのコマンドにはシェルやawk、Cに由来する
前回の(1)はこちらから。 プロジェクトでcronを利用する 筆者は普段ゲーム開発のサーバサイドを担当していますが、プロジェクトによってはバッチサーバのcrontabが100行を超えることもあります。イベント、ランキング処理、監視、集計、バックアップ、リカバリ処理などをしっかりやろうとすると、どうしてもそれくらいになってしまいます。 100行とはいかなくても、プロジェクトで使うcrontabの行数が膨らんでくると、サーバで直接crontabを編集することは管理上現実的ではありません。 crontabの記述とリポジトリ管理 では実際のプロジェクトでcrontabをどのように管理していけばよいのでしょうか。筆者は次の方針を立てています。 crontabの記述にゆるやかな規約を設け、リポジトリ管理する crontabの自動テストを行う crontabの反映方法をなるべく自動化する crontab
DBIの泣き所 いわゆるLAMPないしそれに似た環境でウェブサービスばかり書いている方にはあまり実感がないかもしれませんが、あちらの現場ではOracleを、こちらの現場ではMicrosoft SQL Serverを、はたまた別の現場では組み込みのSQLiteを、といった受託系の仕事をしている人にとって、SQLの方言問題は避けては通れないもののひとつです。 典型的なところでは、たとえばSELECTで取得するデータの件数を制限したい場合、PostgreSQLなどでは「LIMIT ... OFFSET ...」のように書きますが、OracleではROWNUMを使いますし、MS SQL serverならSET ROWCOUNTやTOPを使います。また、いまでこそPostgreSQLとの互換性を確保するため「LIMIT ... OFFSET ...」と書けるようになっているMySQLにしたところで、
本連載では第一線のPerlハッカーが回替わりで執筆していきます。第2回は、Japan Perl Association代表理事の牧大輔さんで、テーマはAnyEventです。 はじめに 昨今のPerl界で最も熱い話題がイベント駆動プログラミングです。イベント駆動プログラミングはいわゆる「リアルタイムWeb」などと呼ばれる、大量のデータや接続をさばきつつも更新通知の速さが重要となるアプリケーションでは必須技術で、今後のエンジニアにとって最も重要な知識の一つと言えるでしょう。 イベント駆動プログラミング自体はPerlでも以前からさまざまな用途に使われてきましたが、それがまた見直されているのは、従来のイベント駆動プログラミング用ツールキットの使いやすさをはるかに凌駕するAnyEventというモジュールが成熟期を迎えたためです。 イベント駆動プログラミングとは AnyEventの解説に入る前に、簡単
% /bin/ls -laF /var/log ⏎ -rw-r--r-- 1 neko nyaan 117649 Feb 22 2022 azumakuniyuki % /bin/cat /var/log/azumakuniyuki ⏎ まだブログの練習中(´∇`) Perl入学式 Advent Calendar 2014の12月12日(金)の記事です。昨日の記事は@toku_bassさんの「cpandocべんりってはなし」でした、perldocにcpandocと一次資料に簡単にアクセス出来るものがあるって便利ですね。 さて、僕は普段京都に住んでいて、Perl入学式 in 大阪のサポーターとして参加しています。とはいっても毎回参加出来てるわけではなく、学校の校庭にたまに現れる野良犬みたいな頻度でしか登場しないので、あんまり貢献出来てないなぁと思ってはいます。 12日目の記
Perlを入れたはいいものの ご存じのように、Perlには、簡単なコマンドであれば、いちいちスクリプトファイルを用意しなくてもコマンドライン上で実行できる-eというスイッチが用意されています。 > perl -e 'print "Hello, world!"' また、一行では収まらないような長さのスクリプトでも、使い捨てでよければ、perlコマンドをスクリプトファイルや-eスイッチなしで実行することで、コンソールからスクリプトを入力できるようになります。 > perl print "Hello, world!"; ^D とはいえ、まともにPerlを使おうと思ったら、何らかのテキストエディタが必要になります。Unix系の環境ではviとEmacsの系統がそれぞれ一大勢力を成していますが、Windows環境では、標準添付のメモ帳(notepad)があまりに貧弱なため、たいていの人は自分の好みのエ
今回のテーマ 今回は、Perlのattributeという仕組みの詳細と、そのattributeを利用したClass::Componentのpluginについての解説、pluginの作成方法といった話題を取り上げます。 サンプルアプリケーション 本連載では、プラガブルなモジュールを作製するという事を考えて、Gopperという実際に実行可能なサンプルアプリケーションを元に解説を行ないます。GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 455 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper attributeとは attributeとは、Perlのサブルーチンや変数に属性を定義して、サブルーチンとしての挙動を標準から変更したり、どのようなサブルー
こちらは Perl入学式 Advent Calendar 2014 の4日目の記事です。 昨日は @xtetsuji さんの「いつもの風景」でした。 お寿司いいですね。 はじめに さて、「Perl入学式」はプログラミング初心者およびPerl入門者のための無料の勉強会です。 最近の傾向としては、他のプログラミング言語の経験はあるけれどPerlには馴染みがないから来た、という参加者も少なくないようですが、僕自身はプログラミング自体まったくの初心者という段階から参加し始めました。 ただ、ひとくちに「初心者」と言っても、「子供の時期から学ぶのか、大人になってから学ぶのか」では大きな違いがあると感じます。 よって以下では、自分の体験にもとづいて、後者の「大人」(とくには30代以降の社会人)がプログラミングに初めて触れることについて、徒然に書いてみたいと思います。 極私的な入門記 僕は現在、39才+7
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く