約 4,100,773 件
https://w.atwiki.jp/encom/pages/16.html
入力ファイル情報として得られる代入変数一覧 Mediainfoで入力動画を解析して次のようなパラメータを得られます。 InputFile 文字列 インプットファイルのフルパス FilePath 文字列 インプットファイルのパス FileName 文字列 インプットファイル名(拡張子無し) FileFormat 文字列 ファイルフォーマット FileSize 整数 ファイルサイズ(単位:Byte) Duration 文字列 再生時間(hh mm ss書式) V_Format 文字列 ビデオフォーマット V_FormatProf 文字列 ビデオプロファイル・レベル V_BitRate 実数 ビデオストリームのビットレート(単位:bps) V_Width 整数 ビデオの横幅サイズ(ピクセル) V_Height 整数 ビデオの縦幅サイズ(ピクセル) V_PAR 実数 ピクセルアスペクトレシオ V_PARSt 文字列 PARの比率表示(X Y) V_DAR 実数 ディスプレイアスペクトレシオ V_DARSt 文字列 DARの比率表示(W H) V_FrameRateMode 文字列 フレームレートモード(CFRかVFR) V_FrameRate 実数 フレームレート(29.97等) V_FrameCount 整数 ビデオフレーム総数 V_Colorimetry 文字列 いわゆるyuv(4 2 0とか) V_ScanType 文字列 ビデオスキャンタイプ(ProgressiveかInterlaced) V_StreamSize 整数 ビデオストリームのサイズ(単位:Byte) V_CropTop 整数 映像上部の黒帯幅 V_CropBottom 整数 映像下部の黒帯幅 A_Format 文字列 オーディオフォーマット(AAC等) A_FormatProf 文字列 オーディオプロファイル(LC-AACならLC) A_BitRate 実数 オーディオストリームのビットレート(単位:bps) A_Channels 整数 オーディオチャンネル数(2とか5とか) A_SamplingRate 整数 オーディオサンプリングレート(単位:Hz) A_StreamSize 整数 オーディオストリームのサイズ(単位:Byte VBScriptの関数 ↓この辺が参考になります。 http //www.kanaya440.com/contents/script/vbs/function/index_class.html オリジナル関数 secoftime("HH MM SS.sss") "HH MM SS.sss"形式の時間(時刻)表示文字列から秒数を返す。 例:SecofTime("2 50 8.22") → 10208.22 min(A,B) max(A,B) 2つの引数の小さい方・大きい方を返す。 例:Min(10,5) → 5 Max(10,5) → 10 even(A) 切捨ての偶数を返す。 例:Even(15.8) → 14 Even(16) → 16 if_(A,B,C) 式Aが真ならB、偽ならCを返す。 例:if_(20 16,"大","小") → "大" case2(A,B,C,D,E) 式Aが真ならB、式Aが偽で式Cが真ならD、両方偽ならEを返す。 例:case2(18 20,"大",18 15,"中","小") → "中" 他にも本当は色々あるけど・・・解説が大変なので近々^^; MediaInfoについて MediaInfo はビデオ、オーディオ ファイルが使用するコーデックについてのタグ及び技術的な詳細情報を調査し見易くフレンドリーな形式でイクスポートできるフリー(GPL及びLGPL)ツールです。 http //mediainfo.sourceforge.net/ja ImageMagickについて ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. http //www.imagemagick.org/script/index.php
https://w.atwiki.jp/keiplus/pages/108.html
Perl 1987年、Larry Wallが開発したプログラミング(LL)言語。 2018年現在、ver5.6.xとver6系がある。 しかしver6系はあまり人気も支持も少ない印象で、当分は5.x系が中心のままだと思われる。 ウェブサイトがホームページと呼ばれていたWindows95系当時の頃から動的サイトを作れる 言語として各社で利用され、2ch(現5ch)やmixiもPerlで作られていた。 メニュー ・仕事はじめ ・サンプルコード ・Mojolicious ・メモ 公式リファレンス Docs - www.perl.org https //www.perl.org/docs.html perldoc.jp http //perldoc.jp/ 基本的文法 ・シェバン LL言語共通にあるシェバン(shebang)を付ける。 シェバンには実行ファイルを直接指図する書式と、環境変数を指図するタイプがある。 推奨されるのは後者の方。これは実行ファイルに指図した場合、環境によって動かなくなる ケースがあるため。 ただソースを移すとき変わっていることは殆どなく、実際のところどちらでもよい。 #!/usr/bin/perl package pkgProject; use strict; use warnings; use DBI; #外部モジュール読込 eval `../mod/sidemodule.pl`; die $@ if $@; #コメント =pod コメント1 コメント2 でも使われてるところ見たことない =cut $hensu; #変数定義 $hensu_atai = 123; #初期値設定 my $hensu_my; #スコープ有り my($a,$b,%c); #複数 my $hensu_hairetu = (123, abc ,%c); #混在 #外部modルーチン subroutine_func(hikisu); 外部モジュールの利用 使い方のパターンが多いのでコーディングルールに配慮が必要 open my $fh xxx.pl or die $!; local $/; my $instance = $fh ; close $fh; eval $instance; die $@ if $@; do `sidemod.pl`; die $@ if $@; require sidemod.pl ; use lib /home/perl/mod/ ;require sub_func; use lib /home/perl/mod/ ;require subs sub_func; BEGIN { unshift @INC, /home/your/par/currnet/ ; } require subs sub_func; __END__ 特殊変数 $0 スクリプトのコマンド名 $! エラー番号、もしくはエラー文字列 $? 外部コマンドなどを実行した際の最後のステータス値 $@ 直前のevalで発声した例外メッセージ $n パターンマッチ時にn番目の()にマッチした文字列 $| 出力のバッファリング、0以外でバッファリングが無効になる $. ファイルハンドルの現在ある位置の行数 $/ 入力時の区切り文字。デフォルトは改行文字。 $, print使用時のセパレーター $" print "@list_context"とした際の区切り文字 $$ プロセスのpid @ARGV スクリプトに渡された引数 $^D デバッグフラグの値 $^E OS特有のエラーメッセージ $^T スクリプト実行時刻(epoch time) %ENV 環境変数 %INC インクルードされたライブラリなどを記録 %SIG シグナルハンドラを設定するためのハッシュ @INC ライブラリの検索対象ディレクトリ argc は argument count(引数の個数) argv は argument vector(引数の配列) 比較処理 数値 文字列 意味 $x == $y $x eq $y 等しい (equal) $x != $y $x ne $y 等しくない (not equal) $x $y $x lt $y $x は $yより小さい (less than) $x $y $x gt $y $x は $yより大きい (greater than) $x = $y $x le $y $x は $y以下 (less than equal to) $x = $y $x ge $y $x は $y以上 (greater than equal to) $x == $y $x cmp $y $x と $yが等しければ0 br;$x より $yが小さければ-1 br;$x より $yが大きければ1 br;(compare) br;
https://w.atwiki.jp/perlref/pages/99.html
サブルーチン 【用語】 【説明】 一つ、またはいくつかの処理を一つにまとめ、何かしら値を返す一つのまとまり。 わかりやすく言えば、携帯電話みたいなもの。 同じような処理を一つにまとめ、定義したサブルーチン名で呼べば、同じ処理をしてくれるもの。 ユーザーが自由に定義できるため、別名「ユーザー定義関数」とも呼ばれる。 Perlでオブジェクト指向する場合、サブルーチンではなくメソッドと呼ばれる。 特殊なサブルーチンとして、オートロードや無名サブルーチンなどがあるが、それについては各項参照。 【関連事項】 sub オートロード 無名サブルーチン メソッド オブジェクト指向
https://w.atwiki.jp/atwikimyj/
Perlさん、Perlくんへようこそ! このページを見ているあなたはPerlさん、もしくはPerlくんですね! このサイトのコンテンツ 私の開発用メモがひたすら続きます。初心者~中級者の方の手助けになるようなネタが載る予定。 2,3ページ読むとわかると思いますが、チラシの裏モードでかかれています。 元はblogだったのですが、内容的にwiki形式の方が楽だと思い、ここに引っ越してきました。 非網羅的、非体系的なwikiらしくないページであることを宣言しておきます。 このサイトを見て、誰かが幸せになればいいなと思い、公開しています。私がPerlで悩んだ際、いろんなサイトに助けられたので少しでも恩返しができれば幸いです(無理か) ※らくだ画像はこちらからお借りしています→M/Y/D/S ペット & 動物図鑑 ※メニュー Perl関連の本 まるごとPerl WEB+DB PRESSの連載をまとめたもの。 Catalystの部分はこの本の一部で紹介されており、 かなり駆け足での紹介。perlについて中級者以上で ないと読んでもついていけないかも、、。 Perl 逆引きクイックリファレンス Catalystの部分はこの本の最後の方で紹介されており、 他の本と比べページ数は多い。しかし教科書的なリファレンス が載っているだけで、下世話な説明はスルーしている。 やhりperlについて中級者以上でないと読んでもついていけな いでしょう。 WEB+DB PRESS LAMPなど、おもにオープンソフトウェアで構築する Webとデータベースシステムを扱っている雑誌。 非常にためになるが、LLではphp,ruby, perlのフレームワークの中でもSledgeやjifty などとの誌面の奪い合いとなるためCatalystが 出てくるのはたまにしかない。 しかし関連技術で読むべきものが多い。
https://w.atwiki.jp/perltips/pages/27.html
$#$を使う。 例 my $arrayref = [ 1, 2, 3 ]; print $#$arrayref; 結果:2 ※$#{$arrayref}でも可。 ※$#{[1,2,3]}も同様の結果に。 scalar関数を使っても同じ事は実現できる。ただし、こちらは上記の方法+1の値になる。 例 my $arrayref = [ 1, 2, 3 ]; print scalar(@$arrayref),"\n"; 結果:3 応用 ハッシュに格納したリストのリファレンスのサイズを得る 例 my %hash = ("key"= [1,2,3,4,5]); print $#{$hash{"key"}}; #結果:4 my $hashref = {"key"= [1,2,3,4,5]}; print $#{$hashref- {"key"}}; #結果:4 関連項目 ()と、[]および{}の違いについて ハッシュにリストを格納する 参照 http //www.perlmonks.org/?node_id=624484
https://w.atwiki.jp/pspt/pages/243.html
JavaScriptリファレンス 言語に関する話題はこちら→JavaScript & jQuery JavaScriptリファレンス 入門 オブジェクトオブジェクトに情報を入力する連想配列 演算子 DOMHTMLの内容を書き換える フォームフォームを最初から編集できる状態にする その他即時関数 入門 JavaScriptリファレンス入門 オブジェクト オブジェクトとはプロパティ(キー)に関連付けてデータを格納するデータ構造である。オブジェクトという概念を用意することでデータが意味を持つようになる(抽象的になる)。 オブジェクトに情報を入力する var Tom={ Japanese 4, mathematics 5, English 2}; alert(Tom.mathematics); 連想配列 var Tom={ Japanese 4, mathematics 5, English 2}; for(key in Tom){ alert("Tom s "+key+ +Tom[key]); } 演算子 演算子/JavaScriptリファレンス DOM HTMLの内容を書き換える HTMLで書き換えたい要素を用意してid名(ここではidName)を添えておく。 document.getElementById("idName").textContent="書き換えました"; フォーム フォームを最初から編集できる状態にする select()をつける。 対象のフォームよりselect()を前に置くと処理されない。 !--HTMLのコード-- form name="form1" input type="text" value="ここに入力" /form script test(); /script //JavaScriptのコード function test(){ document.form1.elements[0].select(); } その他 即時関数 (function(){ // 処理 })(); 編集
https://w.atwiki.jp/rulebook/pages/293.html
ルール・リファレンス ルールの裁定において、最新版のルールブックに掲載しきれない記述、質問の多い裁定に関して、選抜、掲載したものです。最新のルールに関しては、基本的に最新のルールブックに記載されている内容を前提とします。 /* 最新のルールブックに反映された項目については、掲載していません。 */ 紫の指定国力を持つデュアルカードのプレイ 「キャラ」の記述について コストを減少させる効果について 「見る」「表にする」効果について 2つの変数を持つ資源コストの支払い 無作為の選択 特別な名称 代替コストの支払い方 「幼き人質」について 「ソレスタルビーイング」について
https://w.atwiki.jp/eratoho/pages/156.html
erabasic命令リファレンス1 eramaker1バリアントのERBに使用できるerabasicの命令のリファレンスのページです。なお、以下の中で☆がついているものはEmuera拡張命令でeramakerでは使えないので注意すること。 ◎BREAK REPEATループやFOR,DO,WHILEの各ループの中にこの命令がある場合、ループを中断して、ループの終端命令(REND,NEXT,LOOP,WEND)の次の行に移動します。 ◎BEGIN 定型語 ゲームモード遷移命令です。調教を始めたり、ターンを終わらせたりするときに使いますがeramakerのシステムをどのくらい利用しているかによって使えるかどうか違いますし、状況によってはBEGIN命令できないタイミングも存在します。なお、BEGIN命令以降の命令たちは実行はされません。また、場合によっては一部フラグがクリアされたりします。 以下のBEGIN命令が可能になります。 **BEGIN SHOP ショップ画面を呼び出す **BEGIN TRAIN 調教を開始する。 **BEGIN ABLUP 能力上昇画面を呼び出す。 **BEGIN AFTERTRAIN 調教終了処理を始める。 **BEGIN TURNEND ターン終了処理を始める。 **☆BEGIN FIRST 最初から始めるに移動する。 **☆BEGIN TITLE タイトル画面に移動する。 ◎CALL 関数名(,引数変数,…) 関数呼び出し命令です。関数名の関数を呼び出しますが、なければエラーになります。RETURN命令もしくは関数の終端で元のCALL命令の次の行に戻ります。そのときにRESULT 0にRETURN命令で入れられた数値が入ってますが、eramakerにおいては色々と仕様上での問題があることに注意してください。また、引数変数を受け渡す機能はEmuera専用です。これについてはEmueraWikiを参照してください。 ◎CONTINUE REPEATループやFORループの中にこの命令がある場合、ループ命令のところに戻ります。つまり、それ以降~ループ終端命令までの部分を実行せずにカウンターを一つ進めるという処理になります。 ◎DRAWLINE 横一列に横棒を表示する命令です。 ◎ELSE 分岐命令です。必要ならばIF文とENDIF文の間に置かれます。ELSE文以下の命令を実行します。なお、ELSEの後には別のELSEやELSEIFを置くことはできません。 ◎ELSEIF 条件 分岐命令です。必要ならばIF文とENDIF文の間に置かれます。条件が真(成立する)ならば以下の命令を実行します。 ◎ENDIF 分岐命令の終端を示します。IF文の後に必ず置かれます。 ◎GOTO ラベル ラベル名の次の箇所まで移動する命令です。ラベルがなければエラーを出します。関数を飛び越えての移動はできません。 ◎IF 条件 分岐命令です。条件が真(成立する)ならば以下の命令を実行します。 ◎INPUT 数値入力を求めます。入力された数値はRESULT 0に代入されます。 ◎INPUTS 文字入力を求めます。入力された文字列はRESULTS 0に代入されます。 ◎JUMP 関数名(,引数変数,…) 関数移動命令です。関数名の関数がなければエラーを出します。あればそこに移動します。移動したら元の場所には戻って来ません。なお、eramakerではCALLで呼ばれた関数からJUMPしようとするとエラーを出します。また、引数変数を受け渡す機能はEmuera専用です。これについてはEmueraWikiを参照してください。 ◎PRINT 文字列 文字列表示命令です。 ◎PRINTL 文字列 文字列の表示と改行を一緒に行う命令です。 ◎PRINTS 文字列変数 文字列変数の表示を行う命令です。なお、""や%%などで変数を囲んではいけません。 ◎PRINTSL 文字列変数 文字列変数の表示と改行を一緒に行う命令です。文字列変数の取扱いはPRINTSと同じです。 ◎PRINTSW 文字列変数 文字列変数の表示と入力待ちと改行を行う命令です。文字列変数の取扱いはPRINTSと同じです。 ◎PRINTV 数値変数 数値変数の表示を行う命令です。 ◎PRINTVL 数値変数 数値変数の表示と改行を一緒に行う命令です。 ◎PRINTVW 数値変数 数値変数の表示と入力待ちと改行を行う命令です。 ◎PRINTW 文字列 文字列の表示を行い、入力待ちを行い、そして改行を行う命令です。 ◎PRINTFORM FORM文字列 FORM文字列の表示を行う命令です。FORM文字列とは通常の文字列および数値変数と文字列変数を同時に表示できるもので、数値変数は変数名を{}で囲みます。文字列変数は変数名を%%で囲みます。またEmueraではさらに拡張されていますが、詳しくはEmueraWikiを参照してください。 ◎PRINTFORML FORM文字列 FORM文字列の表示と改行を同時に行う命令です。FORM文字列に関してはPRINTFORMと同じです。 ◎PRINTFORMW FORM文字列 FORM文字列の表示を行い、入力待ちを行い、そして改行を行う命令です。FORM文字列に関してはPRINTFORMと同じです。 ◎QUIT eramakerを終わらせる命令です。 ◎REND REPEATループの終端を表します。必ず必要です。 ◎REPEAT 数値変数or数値 ループ命令です。REPEATの後ろの数字の回数だけRENDとの間を回ります。なお、何度目のループか?というのは数値変数COUNT 0を見れば分ります。 ◎RETURN 数値変数or数値 CALLで呼び出された関数から元に戻るための命令です。これが省略されて関数の終端まで達したときにはRETURN 0と同様に動作します。RETURNの後ろの数値はRESULT 0に代入されます。 ◎SIF 条件 分岐文です。条件が真(成立する)ならば直後の一行分の命令を実行します。IF文と違って、ENDIF文は不要ですし、ELSEやELSEIF文による分岐はできません。 ◎TIMES 数値変数 , 数値(小数OK、変数は不可) 数値変数に数値を掛ける命令ですが通常の掛け算と異なり、小数を掛けることができます。 ☆TRYCALL 関数名(,引数変数,…) 関数呼び出し命令です。関数名が存在すればCALL命令同様に働きますが、存在しなければエラーは出さずに何もしません。 ☆TRYGOTO ラベル ラベル名の次の箇所まで移動する命令ですが、ラベルがなければ何もしません。あとの制限はGOTO命令と同様です。 ☆TRYJUMP 関数名(,引数変数,…) 関数移動命令です。関数名が存在すればJUMP命令同様に働きますが、存在しなければエラーは出さずに何もしません。あとの制限はJUMP命令と同様です。 ◎WAIT 入力待ちを行います。Emueraの場合はマウスクリックも入力と扱います。
https://w.atwiki.jp/cocoareferencejp/pages/98.html
Tags Event Handling リファレンス 未完 Cocoa トップ リファレンス データ管理:イベント制御 NSInvocation クラスリファレンス NSInvocation クラスリファレンス 翻訳元 このページの最終更新:2010-02-05 ADCの最終更新:2009-07-04 継承するクラス NSObject 準拠しているプロトコル NSObject (NSObject) フレームワーク /System/Library/Frameworks/Foundation.framework? 使用可能な環境 Mac OS X v10.0 コンパニオンガイド Distributed Objects Programming Topics 宣言ファイル NSInvocation.h サンプルコード CubePuzzleDeskPictAppDockMenuForwardInvocation 概観(Overview) NSInvocationクラスは静的なObjective-Cのメッセージです。つまり、アクションをオブジェクト化したものです。NSInvocationオブジェクトはメッセージをストアしてオブジェクト間、またはアプリケーション間で転送するのに使われます。主にNSTimerオブジェクトや分散オブジェクトシステムで使用されます。 NSInvocationオブジェクトはObjective-Cのメッセージの全ての要素、つまりターゲット、セレクタ、引数、戻り値を収容します。これらの要素は直接設定でき、戻り値はNSInvocationオブジェクトを転送した時に自動的に設定されます。 NSInvocationオブジェクトは異なるターゲットに繰り返し転送することができます。また異なる結果を得る為に、引数を転送の合間に変えることもできます。更に、同じメソッドシグネチャ(引数と戻り値)を持つセレクタに変更することさえできます。この柔軟性のおかげで、NSIncovationクラスは頻繁に変更される引数を多数持つメッセージを繰り返し送信する時に役立ちます。わずかに違う表現でそれぞれのメッセージを打ち直すよりも、NSInvocationを新しいオブジェクトに転送する度に必要に応じて変更した方が良いでしょう。 NSInvocationクラスは可変数の引数と共用体を引数に持つメソッドの発動はサポートしていません。NSInvocationオブジェクトを生成する時はincvocationWithMethodSignature クラスメソッドを使用し、allocメソッドとinitメソッドを使用しないようにしてください。 このクラスは標準では収容されたメッセージの為に引数を保持しません。NSInvocationオブジェクトを生成してから使用するまでの間に引数が消えてしまう可能性がある場合は、オブジェクトを明確に保持しておくか、retainArgumentsメソッドを呼び出しNSInvocationオブジェクトに引数を保持させましょう。 注 NSInvocationクラスはNSCodingプロトコルに準拠していますが、NSPortCoderクラスによる符号化しかサポートしていません。NSInvocationオブジェクトはアーカイブ化に対応していません。 採用しているプロトコル(Adopted Protocols) NSCoding – encodeWithCoder – initWithCoder このクラスでできること(Tasks) NSInvocationオブジェクトの生成(Creating NSInvocation Objects) + invocationWithMethodSignature NSInvocationオブジェクトの設定(Configuring an Invocation Object) – setSelector – selector – setTarget – target – setArgument atIndex – getArgument atIndex – argumentsRetained – retainArguments – setReturnValue – getReturnValue NSInvocationの発動(Dispatching an Invocation) – invoke – invokeWithTarget メソッドシグネチャの取得(Getting the Method Signature) – methodSignature クラスメソッド インスタンスメソッド 定数(Constants)
https://w.atwiki.jp/ntaka206/pages/14.html
UNIXのプロセスについて Unix Programming Frequently Asked Questions 日本語訳 バッファリング マニュアル Perl/Tk テキストウィジット 改行するには お約束 単純文 型グロブ 変数未定義の判定など ソケット通信ネットワークプログラミングの基礎知識 Perlの漢字コード扱い処理手順 UTF-8フラグとは Perl内部の文字コード use utf8; と use encoding;参考 Perlでクリップボードを使うCAPN Clipboardモジュールを使う Tk clipboardを使う Tkのクリップボード機能を使う Net SSHモジュールについて Perl参考書プログラミングPerl 第2版 Perlベストプラクティス UNIXのプロセスについて Unix Programming Frequently Asked Questions 日本語訳 - 1 プロセス制御 http //www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html Unix Programming Frequently Asked Questions 日本語訳 Unix Programming Frequently Asked Questions 日本語訳 - Table of Contents http //www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html バッファリング Perlで出力のバッファリングを無効にするには - Sakura scope http //www.nishishi.com/blog/2006/05/perl_buffer_flu.html コアテクの路地 標準出力のバッファリング http //blog.miraclelinux.com/ctd/2006/09/post_1b11.html マニュアル コマンドラインで perldoc Net Telnet Perl/Tk テキストウィジット 改行するには 文字列に改行コード入れる"\n" 3種類の改行コードに対応しているよう。 CR LF CR LF お約束 use strict; use warnings; 単純文 func() if EXPR; 例 func() if $a == 1; func() if ($a == 1); -ダメ 型グロブ 型グロブは、様々な変数型のエントリを持つ一種のハッシュである。 *pkg sym{SCALAR} # \$pkg symと同じ *pkg sym{ARRAY} # \@pkg symと同じ *pkg sym{HASH} # \%pkg symと同じ *pkg sym{CODE} # \ pkg symと同じ *pkg sym{GLOB} # \*pkg symと同じ *pkg sym{FILEHANDLE} # 内部的なファイルハンドル 直接に等価な書き方はない *pkg sym{NAME} # "sym" リファレンスではない *pkg sym{PACKAGE} # "pkg" リファレンスではない 変数未定義の判定など Ippiki - PerlにおけるNULLの扱い http //www.yamareco.com/ippiki/detail.php?mid=26 mver=0 if ($s == NULL) × ソケット通信 ネットワークプログラミングの基礎知識 http //x68000.q-e-d.net/~68user/net/ Perlの漢字コード扱い 文字列をPerlの内部文字列(utf8フラグの付いた文字列)として扱うと、lengthやsubstr等の関数や正規表現などでもバイト単位でなく文字単位で操作することができる。 PerlのスクリプトがUTF-8で書かれていることを示すために、スクリプトの初めに入れる。 use utf8; use utf8 をすることで、perl にソースコード中の文字列がUTF8で書かれていることを教えます。 このことにより、ソースコード中の文字列には、UTF8フラグがつく。 * STDIN, STDOUTにUTF-8を使うなら、binmodeを使って指定する。 binmode STDIN, " utf8"; binmode STDOUT, " utf8"; 読み込むファイルがUTF-8で書かれているなら、次のようにopenで指定する。 open(FH, " utf8", $filename); 読み込むファイルがshift-jisなど、UTF-8以外のコードで書かれているなら、次のようにencodingをopenで用いて指定する。 open(FH, " encoding(shiftjis)", $filename); 処理手順 ソースコードをUTF-8で書き、先頭で宣言する。 use utf8; ファイルを開く場合は文字コードを指定する。 open(FH, " utf8", $filename); open(FH, " encoding(shiftjis)", $filename); ストリーム等から入力した文字列は、内部表現(UTF-8)に変換する。 $s = decode( utf8 , $s); # UTF-8 $s = decode( shiftjis , $s); # SHIFT JIS $s = decode( euc-jp , $s); # EUC STDOUTにUTF-8を出力するなら、binmodeで指定する。 binmode(STDOUT, "utf8"); 内部表現(UTF-8)に変換した文字列は、漢字でもバイト単位ではなく文字単位で扱える。以下のコードで、内部表現になっていない文字列では漢字が正しく表示されない。 $s = decode( utf8 , $s); # UTF-8 foreach $byte (split //, $s) { print $byte; } UTF-8フラグとは スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数には文字列として下記のものを格納できる (A) 文字列(内部表象 UTF-8) (B) 文字列(内部表象 ISO-8859-1) 文字列にUTF-8フラグが付いているかどうか確認するには。 Encode is_utf8($tmp); Perl内部の文字コード UTF-8/Shift JIS/EUCの入力コード例 UTF-8/Shift JIS/EUCの文字列をPerlに読み込み、標準出力とパイプに出力する use encoding "utf-8"; use Encode; use utf8; 子プロセス側 { binmode(PARENT_WTR, "utf8"); my $s = $telnet- get(Timeout = 3600); #$s = decode( utf8 , $s); # UTF-8 #$s = decode( shiftjis , $s); # SHIFT JIS $s = decode( euc-jp , $s); # EUC print $s; print PARENT_WTR $s; } 親プロセス側 { sysread(PARENT_WTR, $curline, 1024); # 子プロセスからUTF-8で送られてきた文字列を、内部表現(フラグ付きUTF-8)に変換する $curline = decode( utf8 ,$curline); } use utf8; と use encoding; http //www.rwds.net/kuroita/program/Perl_unicode.html#utf8_and_encoding 参考 UTF8 フラグあれこれ - daily dayflower http //d.hatena.ne.jp/dayflower/20080219/1203493616 Perlの文字コード変換の話 其の参 - It_lives_vainlyの日記 http //d.hatena.ne.jp/It_lives_vainly/20080306/1204629364 Perl 5.8.x Unicode関連 http //www.rwds.net/kuroita/program/Perl_unicode.html Perlでクリップボードを使う CAPN Clipboardモジュールを使う Clipboard - Copy and paste with any OS - search.cpan.org # cpan install Clipboard Perlにコードを書いて実行するとxclipが無いと怒られる freshmeat.net Project details for xclip # aptitude install xclip Tk clipboardを使う Tk clipboard - Manipulate Tk clipboard - search.cpan.org 実行時にエラーが出る Tk Error Failed to AUTOLOAD MainWindow clipboardGet Tkのクリップボード機能を使う $widget- clipboadrClear(); $widget- clipboadrAppend( add to clipboard ); $m_mainWindow- SelectionGet(-selection = CLIPBOARD ); クリップボードの内容を取り出し Net SSHモジュールについて WindowsのActivePerlにもある。 Ver0.08 ただし、中身はopen2またはopen3でsshコマンドを呼び出している。 Perl参考書 プログラミングPerl 第2版 最新版は第3版なので注意! 第3版は、2冊に分かれているのでいまいち使いにくい、最新の機能を使わないならば第2版でも十分だと感じます。 中古だと安いし(^.^) Perlベストプラクティス