約 2,981,569 件
https://w.atwiki.jp/nerikesi/pages/25.html
perlです。 カレントディレクトリのファイル名に連番をつける。 --------------------------------------------------------- $i=-2; opendir(DIR, "."); while ($file = readdir(DIR)) { if($i =0){ print "$file"; print $i; print "\n"; if($i 10){ rename($file,"0".$i.$file); } else{ rename($file,$i.$file); } } $i++; } closedir(DIR); ---------------------------------------------------------
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ベストプラクティス
https://w.atwiki.jp/atwikimyj/pages/55.html
TT⇒TTsite TTは便利なのだが、定型的なheaderやfooter関連処理が冗長になる。 ということでそのへんをまとめて処理してくれるのがTTsite。 TTを継承して、各種設定の変数や、ヘッダ、フッタ、エラー、ラッパー などを簡単に扱えるようにしてくれたもの。 <TTからの移行ではまる> (1) create.pl/ (2)ymlの書き換え TT.pmに直接かかずにymlに書いていた。 TTsiteをインストールした直後では、TT.pmはまだTTのときの もののままで、TT.pm.newがTTsiteが作ったtt.pm これを置き換える。 (3)TTsiteのTT.pmの設定をymlに追い出す 略。あとでやる。 (4)画像、css、ttファイルのパスについて 環境: static simpleを使用(パス指定なし) config(ymlファイル)では View TT INCLUDE_PATH - root/src #削除。普通はroot/srcに入れる - root/lib #削除。普通はroot/srcに入れる #static以下にcss、画像、template、TTsite用ファイル全て置くために以下追加。 - root/static/tmpl - root/static/src - root/static/lib - root/static - root/tmpl TEMPLATE_EXTENSION .tt PRE_PROCESS - config/main WRAPPER - site/wrapper ERROR - error TIMER - 0 パスの実例: ・画像ファイル、cssファイル ⇒root以下 (/が必要) img src="/static/images/dft/bg_kado2.gif" link rel="stylesheet" type="text/css" href="/static/css/default.css" ・TTファイル root/tmpl 以下 pmファイルでは $c- stash- {template} = user/regist/regform.tt ; TT内では?
https://w.atwiki.jp/hebolisper/pages/19.html
Exercise 2.3[h] 小さな別の文法を書きなさい。自然言語でもcomputer言語のサブセットでも構いません Exercise 2.4 [m] combine-allを記述する方法として引数listをappendする計算を行う関数cross-productを使って書くことができます。cross-productを高階関数として記述し、それを使ってcombine-allを定義しなさい。次にどのような変更があってもいいように、できるだけ一般化した形で書きなさい。
https://w.atwiki.jp/atwikimyj/pages/17.html
perlモジュールインストールで、データベースを扱うものは結構あるのだけれど、 そのデータベースのソフト、つまりRDBMはどのような設定でインストールされて いるのか、、知ってないと時々はまる。 特に、レンタルサーバでよく見られるPLESKで管理されているやつで、 デフォルトで入っているmysqlのユーザ名って、、rootじゃなくて、adminの場合があります。 GAC http //www.gac.jp/article/index.php?stats=question... 上記の内容がたぶんズバリだと思い、いろいろ調べると、PLESKがインストールされた使える ネットのVPSではmysqlのユーザとしてrootはおらず、adminというのを作成している。 (パスワードは確かユーザ側で入力した気が、、) なのでコマンドプロンプトから root というユーザをパスワードなしで作成。 mysql GRANT ALL PRIVILEGES ON *.* TO root@localhost これでもだめ。 さらに手動で test データベースを作成 mysql create database test; これでインストールを試すと変化あるも成功せず。しかし失敗数が相当減った。 その後いろいろな質問サイトに聞くと、、いろいろあったが、、 find `perl -e print "@INC" ` -name *.pm -print | grep SMTP で確認すると、、現在のLinuxにすでに DBD-mysql Class-DBI-mysql がインストールされていることがわかる。 ということでPLESKで管理されているサーバでは注意が必要
https://w.atwiki.jp/yotagarao/pages/126.html
まずはファイルを開く事から始めましょう 適当にファイルを作ります seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb こんな感じので良いですので適当に作って”改行コードはUNIX”※で適当に名前をつけて保存して下さい ここではseq.fasとします (本来のfastaファイルでは、配列名の前に>がつくんだけど、このwikiだと変な風になっちゃうのでのけといた) ※Windows,Macといったその他の改行コードではうまく読み込めません もちろん全角文字やスペースが入っていてもいけません んで、別なファイルを使ってperlのコードを書きます ここではopen.plとします 最初はよく分からないと思うのでとりあえずまねして書いて下さい use strict; use warnings; my (@array); open(FILE, "seq.fas") or die "$!"; while (my $line= FILE ){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; 書けたらターミナルに移って perl open.pl と打ち込んでエンターして下さい そしたら seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb みたいな出力が出ます これが出たら成功です うまく行かない場合 ¥(バックスペース)が悪さをしてる場合があります コピペでうまく行かないときは自分で書き写して見て下さい それでもうまく行かない場合は、perlには様々な書き方がありますので、別の書き方を探して試して下さい 微妙な差でうまく行くときと行かないときがあります コードの適当な説明 最初の二行、 use strict; use warnings; は、「エラーが出た時は教えてね」という表示 その次の my (@array); は@arrayっていうのを使うよ という表示 @array perlで使う変数(コード書いている人が好きな文字や数字を当てはめる)のうちの配列というやつで いくつかの変数をそれぞれの区切り(要素)に代入できるというもの 要素1 要素2 ・・・ 要素n それぞれの要素には異なる数や文字を代入できる print "@array¥n"; で@arrayの中身を表示する事が出来る(¥nは改行という意味。これがだめなときはバックスペースを使ってみてください) 今回のコードでは"seq.fas"というファイルから一行ずつデータを取得し、 @arayという配列に代入している open(FILE, "seq.fas") or die "$!"; while (my $line= FILE ){ chomp $line; push(@array,$line); } close (FILE); " "の中身を変える事で、様々なファイルを読み込む事が出来る もし読み込みたいファイルがフォルダ(ここではtmpとする)に入っていた場合には open(FILE, "./tmp/seq.fas") or die "$!"; とするとよい また、seq_1.fas,seq_2.fas,seq_3.fasみたいに続き番号になったファイルを次々に読み込みたい場合は use strict; use warnings; my (@array,$i,$file); for($i=1;$i 4;$i++){ $file= seq_ .$i. .fas ; @array=(); open(FILE, $file) or die "$!"; while (my $line= FILE ){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; } みたいにするとよい。つまり$file= seq_ .$i. .fas ;として$iだけ変数にして、forループを使ってseq_1.fas,seq_2.fas,seq_3.fas・・・・っていう風に数字をかえていき、対応するファイルを開いていく訳です。なんかコード間違ってました。ごめんなさい。毎回新しいファイルを開く前に@array配列をちゃんと初期化するんよ、2011.10.29訂正
https://w.atwiki.jp/taka1975/pages/12.html
DBD mysqlインストール [prompt] cpan cpan install DBD mysql これやるとなぜかエラーとなって入らないので、自前でコンパイル作業を行う。 MySQLのコンパイルオプションの確認 [prompt] /usr/local/mysql/bin/mysql_config --libs -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm [prompt] /usr/local/mysql/bin/mysql_config --cflags -I/usr/local/mysql/include/mysql [prompt] cd /root/.cpan/build/DBD-mysql-4.008 [prompt] perl Makefile.PL --cflags=-I/usr/local/mysql/include/mysql \ "--libs=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm" [prompt] make [prompt] make test mysqlのライブラリが見えない場合は、ld.so.confを編集する。 [prompt] vi /etc/ld.so.conf include ld.so.conf /usr/X11R6/lib /usr/local/mysql/lib/mysql [prompt] /sbin/ldconfig [prompt] make test [prompt] make install
https://w.atwiki.jp/irukakiss/pages/63.html
WindowsXpパソコンでPerlのインストールメモ 2011年7月18日海の日なのにこんなの書いてる。 自宅サーバーはWindowsXpにApaheでPHP、CGIを使えるようにしてある。他のパソコンでそれと同じ環境になるようにして、ホームページを更新したりする。インストールのやり方をメモしておかないと少し時間が経つと年のせいかきれいさっぱり忘れてしまうので、また調べなおしたりして手間がかかる。メモを残しておく方が手間が少なくて済む。 ActiveStateのホームページ。 http //www.activestate.com/ ActivePerl-5.12.3.1204-MSWin32-x86-294330.msiをダウンロード。 2つともチェックして「Next」をクリック。 Add perl to the PATH environment variable というのはコンピュータの環境変数にPerlのパスを追加するかの指定。これは必ずチェック。 Create Perl file extension association 拡張子 .pl を Perlに関連付けを行うかの指定です。とりあえずチェック。 [コントロールパネル] ⇒[システム] で「システムのプロパティ」画面。 [詳細設定]タブをクリックし、[環境変数]ボタンをクリック。 「環境変数」画面で「システム環境変数」を確認。 「環境変数」画面で「システム環境変数」の欄になければ追加。 「変数」欄の[Path] 「値」欄に[C \Perl\bin\;]が追加されている事を確認。 もしない場合は「編集」をクリックして手動で追加。 MS-DOSプロンプトを起動。 MS-DOSプロンプトで以下のコマンドを実行。 perl -v コマンド実行後、このような画面が表示されればPerlは正常に動作している。 次にファイルの関連付け。 「フォルダオプション」→「ファイ種類」を順にクリック。 「新規」ボタンをクリック。 上の画面が表示されたら、「ファイルの拡張子」に「cgi」と入力し「詳細」ボタンをクリックし、「関連付けられているファイルタイプ」を「PerlScriptLanguage」にする。 拡張子CGIの関連付けされたファイルがPerlScriptLanguageになっている事を確認し、クリックし選択。詳細設定ボタンをクリック。 「アクション」はOPEN 「アクションを実行するアプリケーション」の項目が "C \Perl\bin\perl.exe" "%1" %* と記入。OK。 関連付けが完了するとアイコンがセットされる。 httpd.confの書き換え 「ScriptAlias」の行で、CGIを置く場所を指定。 ScriptAlias /cgi-bin/ "ローカルパス" その数行下の「 Directory "~" 」の部分も書き替える。 Directory "ローカルパス" 最後は/で終わること。そのフォルダ以下でCGI実行可能。 その下の行 Options ExecCGI とする。 CGIの実行を許可する。 「To use CGI scripts 」の下のコメントアウト(#)を外す。 「.pl」を付け加える。 AddHandler cgi-script .cgi .pl 拡張子とPerlを関連付ける。 .cgi のつくファイルがアクセスされた時に、CGIとして処理させる設定。 「 /IfModule 」の上の「AddType」が並んでいる部分の最後に 次の二行を書き加える。 AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl Apach再起動後 以下のテストプログラムをhello.cgiといった名前で書いてブラウザでアクセス。 (次の行から) #!C /Perl/bin/perl print "Content-type text/html\n\n"; print "HERE"; html lang=ja head meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" title Hello, CGI ! /title /head body bgcolor="#FFFFCC" text="#000000" HERE print " h2 HELLO CGI /h2 \n"; print " p font color=\"Red\" Hello, CGI ! /font /p \n"; print " p b このページはCGIで表\示されています。 /b /p \n"; print "HERE"; /body /html HERE exit; (上の行まで) 注.これをメモ帳などにコピペしてhello.cgiに名前を変えればいいが、@Wikiの仕様なのか、なぜか各行末にスペースが入る。これを取り除かないとエラーになる。
https://w.atwiki.jp/verilog/pages/16.html
シェルからperlを実行する例。 perl -e print "ababa\n" ababa ファイル中の文字列"ababa"を"kapapa"に変換する。 perl -pe s/ababa/kapapa/g [filename] ファイル中の文字列"ababa"を"kapapa"に変換して上書き、 バックアップを.bakという名前で保存。 perl -pi.bak -e s/ababa/kapapa/g [filename] ファイル中の文字列"ababa"を"kapapa"に変換して上書き。 perl -pi -e s/ababa/kapapa/g [filename] オートスプリットモードを使用。 スプリットした結果は@Fに詰め込まれる。 perl -ane foreach(@F){print "$_\n";} [filename] topへ
https://w.atwiki.jp/dqchurch/pages/43.html
トップページ→オリジナルCGIゲームを作ろう!→Perl講座 tuday - yesterday - Perl講座 概要 HSPというソフトを使ってプログラミングする方法を教えます。 Perl講座1日目