◆ はじめに
本ページは、私がPerlを習得した時(いや習得中)のノートです。
ごく普通の言語(COBOL,C,Java,VB等)を知っている人が、Perlをやり始めるといろいろと悩むことがあります。
それは、
- 暗号のような記号のオンパレード
- 文脈(コンテキスト)によって意味の違う関数
- 構造体がないデータ構造
- 同名で意味が違う変数
- 比較先がない比較
- 代入文がないのに代入される
- 正規表現の拡張
- return文がないリターン値
- foreach文がいつのまにかfor文に
- サブルーチンなのに関数に
- ファイル名がいつのまにかハンドル名に
です。
本ページは、そのようなハードルを一つ一つクリアにしていけたらと思います。
そして、本ページが何かのお役に立てれば幸いです。では、ごゆっくりご覧ください。
尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくPerlノート掲示板へご指摘ください。
◆ サイト最新情報
◆ カテゴリー
- Perlの基礎系
- Perlの正規表現系
- Perlのリファレンス系
- Perlのモジュール・オブジェクト系
- PerlのEXCELアクセス系
- PerlのDBアクセス系
- Perlのメール送信系
- PerlのCGI系
- Perlの漢字処理系
- PerlのTIPS系
- PerlでないTIPS系
- おすすめのPerl本
◆ インデックス
■ Perlの基礎系
- Perlでの基本の基本の用語集
- Perlでのコンテキスト
- Perlで同名の$aaaと@aaaは別物か?
- Perlで同名の$aaa[0]と@aaa[0]は別物か?
- Perlでのfor文とforeach文は別物か?
- スカラー変数、配列変数、ハッシュ変数
- Perlで-wオプションとstrictプラグマ
- Perlでの数値の扱いのメモ
- Perlでmyとlocalの違い
- Perlで型グロブとは
- Perlにおける「真」と「偽」
- Perlの関数引数 $_[0]の謎
- リストと配列
- Perlでの一行if文
- バイナリ構造体とは
- binmode関数とは
- ループ制御文 next,last,redo,goto
- Perlでのシステム関数&サブルーチン呼び出しの書き方
- ifの反対はunless
- my宣言とour宣言
- 配列変数の初期化
- Perlでハッシュのキー値の存在チェック
- Perlで実行せずに構文チェックだけするには
- Perlで『=~』は、なんという?
- ベアワード(Bareword)とは
- スカラー(Scalar)とは
- ヒアドキュメントの記述の仕方
- Perlでの小括弧・中括弧・大括弧
- Perlでのファイル存在チェック
- 配列変数へスカラー変数を代入すると?
- index/rindexとsubstr
- 数値と数値文字列の比較
- Perlでのグローバル変数宣言
- ハッシュキーは引用符で囲むべきか?
- 代入文と||論理演算子
- PerlでVBの構造体配列処理を表現するには
- Perlでのカンマ演算子とドット演算子
- レキシカル変数の消滅タイミング
- pack関数とunpack関数の基本を理解する
- ダブルクォーティション文字列内での配列変数の展開
- 配列スライスとハッシュスライス
- qwの勘違い
- FileHandleモジュールの使い方メモ
- Perlでの文字列はバイナリデータを格納できるか?
- 配列要素数と最大インデックス
- Perlでの定数宣言
- wantarrayとは
- warn() carp() die() croak() について
- サブルーチン引数の参照渡しについて
- Perlでの nオプションとダイアモンド演算子
- Perlでのループ変数の意外な性質
- Perlでの『単項プラス演算子』とは
- foreachのワーク変数には参照が入る!!
- 標準入力とダイアモンド演算子
- 配列変数での最大インデックスと要素数
- Perlでのシンボルテーブル
- ファイルテスト演算子
- Perlで配列の要素を削る
- Perlでの『|=』と『||=』の違い
- 『カンマ演算子』と『=>演算子』
- 『else if』綴りの微妙な違い
- 論理和演算子『||』と『or』の違い
- レキシカル変数の寿命
- 標準関数と組み込み関数
- 続・論理和演算子『||』と『or』の違い
- 内部サブルーチンとstatic変数
- 無名サブルーチンとクロージャ
- パッケージサブルーチンとbless
- Perlでのファイルハンドルとは何か?
- Perlでの単独shiftとは何か?
- Perlの謎(その1):変数等の頭文字って何を意味するの?
- Perlの謎(その2):『特殊変数 $_』とは
- Perlの謎(その3):subのデフォルトのリターン値
- Perlの謎(その4):コンテキストで意味が変わる関数
- Perlの謎(その5):構造体がないデータ構造
- Perlの謎(その6):foreach文がfor文に
- Perlの謎(その9):Perlでの文字列
- Perlの謎(その10)サブルーチンの呼び出し方
- Perlの謎(番外編1):リストの要素数を求める
- Perlにも真偽値は存在する
- プログラミングの基礎の基礎
- Perlでの and と or について
- Perlの基本の基礎が簡素によくわかる
- はじめてのPerlでつまずくこと
■ Perlの正規表現系
- 正規表現(基礎編1)
- 正規表現(基礎編2)
- 正規表現のメタ文字のエスケープ
- 正規表現の量指定子の『*』と『+』の違い
- s/// と tr/// の違い
- s/// と m// での oオプション とは
- tr/// のいろいろな使い方メモ
- tr変換演算子のテストメモ
- PerlでTrimする!
- SJIS漢字スペース対応のTrim
- Perlでm演算子と正規表現の記憶
- 正規表現の拡張構文のうち簡単なもの
- 文字列内から正規表現がマッチした文字列を抽出して配列に入れる
- シフトJIS漢字のファイル名にマッチしてみる
- マッチ演算子(m//)のx修飾子について(IPアドレス正規表現)
- IPアドレスの正規表現の解説
- Perlでの正規表現を再勉強
- Perlの謎(その7):マッチ演算子の区切り文字
- Perlの謎(その8):正規表現
- URLからPathを抜き出すには
- 選択の最短マッチ(最小マッチ)は可能ですか?
- 正規表現基礎文法最速マスター With Perl
- ネットワークアドレスを求める!
- パス名からファイル名を取得する
- s修飾子の威力
■ Perlのリファレンス系
- リファレンスとデリファレンス
- Perlでの配列の配列
- Perlでのハッシュの配列
- Perlでの配列のハッシュ
- Perlでのハッシュのハッシュ
- 動的に配列の配列を作成
- 動的にハッシュの配列を作成
- 動的に配列のハッシュを作る
- Perlでは、なぜリファレンスが必要なのか?
- Perlでの多次元配列アクセス
- サブルーチンへのリファレンス
- 配列リファレンスから他の配列へデータを移す
- スカラー変数を使った配列の配列
- Perlでの矢印演算子『->』の省略について
- 「魔法がかけられたリファレンス」を作るblessとは
- Perlの謎(番外編4):『ハッシュの配列』か『配列のハッシュ』か?
- Perlでのリファレンスについて
- 無名ハッシュの威力
■ Perlのモジュール・オブジェクト系
- Perlでrequireとuseの違い
- BEGINサブルーチンについて
- ENDサブルーチン
- ローカルサブとrequireサブで、同名サブルーチンは、どちらが優先か?
- requireサブルーチンはパッケージ名で修飾する?
- 変数のメインパッケージ内宣言とrequire内宣言の参照関係
- Perlでの「::」と「->」の違い
- use宣言とpackage宣言
- use宣言はrequire宣言プラスExporterモジュールのimport関数?
- クラスとオブジェクトのメソッド起動
- Perlでのオブジェクトとは? blessとは?
- Perlでの継承とは?
- Perlでイテレータパターン!(デザインパターン)
- Perlでアダプターパターン!(デザインパターン)
- Perlでテンプレートメソッドパターン! デザインパターン)
- Perlでファクトリメソッドパターン! (デザインパターン)
- Perlでシングルトンパターン! (デザインパターン)
- PerlでPrototypeパターン! (デザインパターン)
- PerlでBuilderパターン! (デザインパターン)
- PerlでBridgeパターン! (デザインパターン)
- PerlでStrategyパターン! (デザインパターン)
- 配列オブジェクトのメソッドとプロパティ
- tie関数とは
- Tie::Expressionモジュールの私的説明メモ
- パッケージのサブルーチンコールとクラスのメソッド起動
- Perlでの『間接オブジェクト形式』とは
- Perlでの『new』とは
- packageの不思議を解く
- ActivePerlでCPANからモジュールをゲットする
- Benchmark モジュールの使い方
- Perlの謎(番外編3):『コンスタントと変換演算子のoverload』とは
- Perlでのオブジェクト指向について
- Perlでのオブジェクトについて
- Perlでのblessについて
- Perlでのuse宣言について
- Attribute::Protectedのソースを読んでみました!
- Perlオブジェクト基礎文法最速マスター
■ PerlのEXCELアクセス系
- PerlでEXCELブックのダウンロードとアップロード
- エラーメッセージも出ずロック状態
- PerlでのEXCELブック作成プログラム雛型
- PerlでEXCELブックからセルデータを読み込む
- CSVデータからXLSデータにするときのセル属性を制御する
- EXCELのセル格納ロジックをスピードアップするには
- PerlでIIS−CGIからEXCELを起動すると『アクセスが拒否されました』になったら
- PerlからEXCEL-VBAのマクロを起動するには
- PerlからExcelVBAのOpenTextの引数を指定するには
- PerlでCSV(テキスト)からXLS(エクセル)への最速変換
- Win32::OLE->newメソッドのデストラクタについて
- Cellsメソッドの第2引数の謎
- VBAでのセル格納をPerlで実現してみる
- Excelオブジェクト作成を連続要求すると発生するエラー
■ PerlのDBアクセス系
- PerlでDBへNULLを書き込む時のvaluef関数
- PerlでのNULL
- PerlからSQL Serverへアクセスする
- ADOアクセスで、Win32::OLE::Variant=SCALAR(0x......)の値がでたら
- PerlでMS-SQLサーバーDB上のNULLを判断するには?
- SQL-SELECT文からPerl-HASH関数へ(Select2Hash)
- PerlからDBへバイナリデータを格納する
- Perlの変数名とSQLのワイルドカード
- DBでのNULLはPerlではどうなる?
- SQLiteを使ってみる!
- SQLiteを使ってみる!(パート2)
■ Perlのメール送信系
- PerlでSMTPモジュールを使ったメール送信
- SMTPモジュールでの複数アドレスメールToの罠
- PerlにてNet::SMTPでメール送信時、『Can't call method "mail" on ...』が出たら
- SMTPオブジェクトへのメールアドレス設定の留意点
■ PerlのCGI系
- URLデコード処理
- CGI.pmでURLパラメータを受け取るには
- CGIで重たい処理をするには?
- PerlでIIS-CGIからのdie
- 漢字クッキーをPerlでSetし、JavaScriptでGetする!
- 漢字クッキーをJavaScriptでSetしPerlでGetする!
- クッキーCGIサンプル
- PerlでのURLエンコーディング
- ダウンロードCGIのPerlスクリプト
- HTMLで要素の属性値内にクォート文字を書くには
- CGI.pmのリンクメモ
- Apacheのprintenv.plには
- WINDOWSでのシバン for Apache
- 想定外エラーはevalでキャッチ!
- URLパラメータとGETパラメータの関係とは
- WEB暗号化基礎知識最速マスター
- WEB脆弱性基礎知識最速マスター
■ Perlの漢字処理系
- Unicodeの概略を理解する
- WINDOWSでのPerl漢字処理(文字化けやエラーマッチについて)
- WINDOWSでのPerl漢字処理について考えました
- WINDOWS上のPerl漢字処理では、ソースコードは UTF-8 で I/O は Shift-JIS で・・・
- PerlでのシフトJIS漢字問題
- シフトJISからUTF-16へ変換
- Win上で漢字変換し、それをLinuxに持っていく
- Perlでの日本語処理について
- Perlで文字列長(バイト数)を求めるには
- 漢字コードを指定したファイルコピー
■ PerlのTIPS系
- キーとデータの別々のリストからハッシュを作る
- PerlでWINDOWS改行コードの扱い
- 改行コードとchomp
- 文字列中のサブルーチン実行
- Perlのsplitで、デリミタのないセパレート
- シンボリックリファレンス
- grep演算子とmap演算子
- sort関数についてのメモ
- eval関数についてのメモ
- Open関数で第二引数の省略
- Perlで引数に複数の配列を指定するには
- Perlで配列の最大インデックスを参照するには
- Perlで and, &&, or, || の違いと便利な使い道
- Perlでフルパスを分解して配列へ
- Perlでの時間の計算処理
- シグナル処理 for WINDOWS
- Perlでのカレントパスの求め方(for WINDOWS)
- Perlでコマンドラインからの引数取得方法
- Perlでの__LINE__の使い道
- system関数のリターン値で終了コードを取得するには
- 配列リファレンスの元配列の最大インデックスを求める
- リバース(reverse関数)の意外な使い道
- フォルダ内ファイル一括修正プログラムの雛型
- Perlで文字列長(バイト数)を求めるには
- open関数の第一引数であるディスクリプタにスカラー変数を指定できるか?
- 月末日取得関数(うるう年計算)
- ref関数:リファレンスの存在判定(参照する型判定)
- Perlでの多次元配列の実体コピー
- ファイル分割のサンプルスクリプト
- 「1 while s///」とはなにか?
- Base64モジュールの留意点
- Perlでビット処理を配列で行う
- Perlでのコマンドライン引数取得が変
- Perlでの3項演算子
- Perlでパイプオープン
- 配列&ハッシュのアクセス方法いろいろ
- openエラー取得について
- shiftの使い道
- 配列を任意の一文字で初期化するには
- substrの振る舞い
- 配列を操作する関数たち
- 「warnings」と「-w」は、どう違う?
- Perlでの複数行のコメント
- Perlでforeach文をかますとレキシカルスコープが変
- 範囲演算子『..』と『...』の違い?
- 続・範囲演算子『..』と『...』の違い?
- サブルーチンの上書き(オーバーライド)?
- 多次元配列エミュレート
- AOUTLOADとは
- XSとは
- Mooseとは
- Dumperを使ってみました
- 配列のprint表示を見やすくするには
- @_の要素の$_[0],$_[1]等は、格納するべきアドレスが可変!
- 「なぜ split $;, $_[1] なのかは宿題」の答え
- 関数仮引数の$_[0],$_[1]等は、特殊な値が入る?
- 範囲演算子で範囲同値ケースでのRubyとPerlの比較
- さまざまな Perl 診断メッセージ
- Perlでコマンドプロンプトから実行時、標準入力を受け取れない
- mマッチ演算子の区切り文字について
- split関数の第一引数
- コマンドプロンプトでPerlスクリプトをパイプやリダイレクトする時の留意点
- PerlScriptとは
- zip と gzip について
- 標準モジュールArchiveでgzipする!
- Perlでの文字列中のエスケープについていろいろ
- スリープの秒指定について
- Perlでのデバックプリント
- ワイルドカードでのファイル削除
- mkdir関数とmkpath関数
- カレントディレクトリを取得する
- PerlでZIP/UNZIP
- PerlでSwitch文(Case文)
- Perlでファイルコピー
- Perl で Win32::API プログラミング入門』リンクメモ
- Windows上のPerlで改行コードをLF(0x0a)にするには
- フォルダ内の子フォルダ削除(rmtree)の留意点
- PerlでFTP(ファイル転送)するには
- PerlでWindowsAPIをコールする
- PerlでWindowsAPIをコールする(DynaLoader編)
- フォルダ配下の一覧を取得する関数
- int関数の意外な使い道
- Perlでのゼロパディング
- LinuxでPerlスクリプトを実行するには
- grep関数で文字列にマッチさせるには
- pwdには気をつけろ!
- Get!『まるごとPerl! Vol.1』
- JPerl Advent Calendar 2008
- イベントログへメッセージ出力
- Perlでtaskkill for Windows
- 続・Perlでtaskkill for Windows
- 黒魔術を読み解く
- Perlらしく書くための5つの極意』が良かった件について
- YAML(ヤムル)とは
- Perlの謎(番外編2):__END__と__DATA__の違い
- ハッシュが空かどうかを調べたい
- ハッシュの要素数を求めるには?
- 配列のインデックスでなく、インデックスの配列?
- 配列とハッシュの要素数の求め方
- WIN系でフォルダをコピーするには
- Perlでのプロセス排他について
- Perlでのファイルロックについて
- ファイルのサイズを変更するtruncate
- 配列の要素をユニークにする!
- Perlでのファイル処理について
- ActivePerlのライセンス
- Perlでの配列連結について
- Perlで .NET Framework クラスを利用する
- Perlでテキストファイル内の検索文字列がある行数を求めるには
- 分かってみれば、当たり前のこと
- Perlでのコンパイル?
- Perlのよいところ
- 配列の代入と比較
- シーザー暗号を組んでみる!
■ PerlでないTIPS系
- Unicodeの概略を理解する
- IEで『警告:ページの有効期限切れ』メッセージが出たら
- JavaScriptにフォーム部品情報を渡すには
- リファラ(HTTP_REFERRER)がスルーする
- 月の末日に気をつけろ!
- バグはいつも素敵に意外に隠れている
- cron設定メモ
- リトライとトライの関係とは
- WEB脆弱性のアクセス制御や認可制御の欠落とは
- WEB脆弱性のディレクトリ・トラバーサル(Directory Traversal)とは?
- WEB脆弱性のCSRF(クロスサイト・リクエスト・フォージェリ)とは?
- WEB脆弱性のインジェクションとは?
- WEB脆弱性のクロスサイト・スクリプティングとは
- WEB脆弱性のセッション・ハイジャックとは