忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

perl でファイルコピー File::Copy

perl でファイルコピーをしたい場合、File::Copyモジュールを使うのが簡単。

use File::Copy

$sorce = '/home/sample.txt';
$dest = '/tmp/sample.txt';
move $sorce, $dest or die $!;

拍手[0回]

PR

perl ディレクトリの一覧を取得するglob関数

OPENDIRで取得するのもありだけど、glob関数を使うほうが簡単。

.ではじまらない全てのファイル取得したい場合

my @files = glob "*";

.で始まるファイルも含めたい場合

my @files = "* .*"


.txtで終わるファイルを取得したい場合

my @files = glob "*.txt"


.txtと.plで終わるファイルを取得したい場合

my @files = glob "*.txt *.pl"


注意としては、
・カレントディレクトリの一覧を取得する。
 →絶対パスで指定するかchdir関数を使う。
・ディレクトリも含まれる。
 →OPENDIRでまわしたほうが楽かな?


拍手[0回]

perl前後の空白文字を削除する(全角スペース含む)

前後の空白文字(全角スペース含)を削除する
 
# $str の先頭の空白文字(全角スペース含)を削除する
$str =~ s/^(?:\s|$Zspace)+//o; # $str が EUC-JP の場合
$str =~ s/^(?:\s|$Zspace_sjis)+//o; # $str が SJIS の場合
 
# $str の末尾の空白文字(全角スペース含)を削除する
$str =~ s/^($character*?)(?:\s|$Zspace)+$/$1/o; # $str が EUC-JP の場合
$str =~ s/$eucpre(?:\s|$Zspace)+$//o; # $str が EUC-JP の場合(perl5.005以降)

# 半角スペース
$space = '\x20';
 
# 全角スペース
$Zspace = '(?:\xA1\xA1)'; # EUC-JP
$Zspace_sjis = '(?:\x81\x40)'; # SJIS
 

拍手[1回]

perl 数字を3桁のカンマ区切り(正規表現)

数値を金額表示用に3桁ごとにカンマで区切りたいときに。
[perl]Perlで数字を3桁ごとにカンマ区切り

sub commify {
  my $text = reverse $_[0];
  $text =~ s/(\d\d\d)(?=\d)(?!\d\.)/$1,/g;
  return scalar reverse $text;
}

 



拍手[0回]

perl の die

die関数はエラーが発生した値を標準出力に出力し実行しているperlスクリプトを終了させる。
1番目の引数にはエラーとして出力するリストを指定する。
エラー出力後に$!の内容をステータスコードとしてexit関数を呼び出して終了する。

die("err mssage")

引数が上のように改行で終わらない場合、行番号も出力される。

引数の中に$!を入れておくとシステムに対する要求のエラーのときはメッセージも一緒に出る。

open(INFILE, $infile) or die "Error Can't open $infile $!";
$ test.pl
Can't open infile.txt No such file or directory



拍手[0回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター