• 検索結果がありません。

< > = grep(/< >/, = ("AAA", "AAB", = foreach $Temp print "$Temp\n"; < > = sort = ("b"

N/A
N/A
Protected

Academic year: 2021

シェア "< > = grep(/< >/, = ("AAA", "AAB", = foreach $Temp print "$Temp\n"; < > = sort = ("b""

Copied!
13
0
0

読み込み中.... (全文を見る)

全文

(1)

Perl

1

サンプルコード

Unix コマンドを実行 qx{<コマンド>} サンプルコード open(TEST,">test.txt"); #結果出力用ファイルを開く @resalt = qx{ls}; #ls コマンドを実行して結果を配列に格納 print TEST @resalt; #配列に記憶した結果をファイルに出力 close(TEST); 配列をハッシュ関数に代入 $<ハッシュ>{<キー>} = [<配列>] サンプルコード @List = ("a","aa","aaa"); $Hush{"AAA"} = [@List];

foreach $Temp (@{$Test{"AAA"}}){#すべての要素を列挙 print "$Temp\n"; } print $Test{"AAA"}[0] ,"\n";#特定の要素にアクセス 文字列をすべて置換 <文字列> =~ s/<被置換文字列>/<置換文字列>)/g サンプルコード $String = "AABBAABB"; $String =~ s/BB/CC/g;#BB を CC で置換 print "$String\n";

(2)

配列内を検索

<結果の配列> = grep(/<検索条件>/, <検索対象の配列>) サンプルコード

@List = ("AAA", "AAB", "BBB");

@List2 = grep(/AA./, @List);#正規表現にマッチするもののみ抽出 foreach $Temp (@List2){

print "$Temp\n"; }

配列を文字列としてソート

<結果の配列> = sort <検索対象の配列> サンプルコード @List = ("b", "d", "e", "a", "c", "f"); @List2 = sort @List; #並べ替え

print "@List2\n";

配列を数値としてソート

<結果の配列> = sort { $a <=> $b } <検索対象の配列> サンプルコード

@List = (5, 3, 1, 2, 4, 0);

@List2 = sort { $a <=> $b } @List; #昇順で並べ替え print "@List2\n"; 2 次元配列を文字列としてソート <結果の配列> = sort { @$a[<並べ替えする列番号>] cmp @$b[<並べ替えする 列番号>] } <検索対象の配列> サンプルコード @List = ([0, c], [1, b], [2, a]);

(3)

@List2 = sort { @$a[1] cmp @$b[1] } @List; #2 列目について昇順で並べ替え for($i=0 ; $i<3 ; $i++){

for($j=0 ; $j<2 ; $j++){ print "$List2[$i][$j]\t"; } print "\n"; } 2 次元配列を数値としてソート <結果の配列> = sort { @$a[<並べ替えする列番号>] <=> @$b[<並べ替えする 列番号>] } <検索対象の配列> サンプルコード @List = ([0, 2], [1, 3], [2, 1]);

@List2 = sort { @$a[1] <=> @$b[1] } @List; #2 列目について昇順で並べ替え for($i=0 ; $i<3 ; $i++){

for($j=0 ; $j<2 ; $j++){ print "$List2[$i][$j]\t"; } print "\n"; } 配列の要素数を取得 scalar(@<配列>) サンプルコード @List = ("AAA", "BBB", "CCC"); print scalar(@List) ,"\n"; #要素数を表示 別ファイルの関数を呼び出し &<パッケージ名>::<関数名>(<引数>)

(4)

メインファイルの記述 サンプルコード require "Rand_Package.pl"; &TestPackage::TestSubroutin;#関数を呼び出し 関数を記述するファイルの記述 package TestPackage;#パッケージ名 sub TestSubroutin{#関数

print "Hello, world.\n"; }

return 1;

文字コードを変換

$Euc = encode("<エンコード>", decode("<元のエンコード>", $Sjis)); サンプルコード

use Encode;

$Euc = encode("euc-jp", decode("shiftjis", $Sjis));#UTF-8 な ら utf-8, UTF-16 なら UTF-16BE

文字コードを判定

$Encode = guess_encoding(<文字列>, qw/euc-jp shiftjis 7bit-jis utf8/); サンプルコード

use Encode::Guess;

$Encode = guess_encoding("あいう", qw/euc-jp shiftjis 7bit-jis utf8/); print $Encode->name ,"\n";

Mac のファイルシステムの文字コード (UTF-8-MAC) を変換 $String = Encode::decode(’utf-8-mac’, $String);

(5)

サンプルコード use utf8; use Encode::UTF8Mac; open(TEST,">だくてん.txt");#ファイルを作成 close(TEST); opendir(INPUTDIRECTORY,"./"); while($FileName = readdir(INPUTDIRECTORY)){#ディレクトリ内のファイル名の 取得

$FileName = Encode::decode(’utf-8-mac’, $FileName);#内部文字列に変換 $FileName =~ s/だ/ダ/g;#「だ」を「ダ」に置換

$FileName = Encode::encode(’utf-8-mac’, $FileName);#内部文字列をもとに 戻す

print "$FileName\n"; }

文字列の分解

@List = split(/<分解パターン>/, $String); サンプルコード $String = "Test-Test-Test";

@List = split(/-/, $String); print "@List\n";

文字列の結合

$String1 = $String2 . $String3;

サンプルコード $String2 = "a";

$String3 = "b";

$String1 = $String2 . $String3; print "$String1\n";

(6)

文字数カウント

length(decode(’utf-8’, $String);

サンプルコード use Encode;

$String = "あいうえお";

$Length = length(decode(’utf-8’, $String)); print "$Length\n"; 文字数の一部を取り出し substr($String, <最初の位置>, <最後の位置>); サンプルコード $String = "abcdef"; $String = substr($String, 2, 3); print "$String\n"; ファイルをコピー copy(<コピー元ファイル>, <コピー先ファイル名>); サンプルコード use File::Copy; open(TEST,">test.txt");#test.txt を作成 close(TEST); copy("test.txt", "test2.txt"); ディレクトリをコピー substr(<コピー元ディレクトリ>, <コピー先ディレクトリ>); サンプルコード

(7)

mkdir("test", 0777);#新しいディレクトリの作成 rcopy("test", "test2"); ファイルおよびディレクトリ名をリネーム rename(<元ファイル名>, <変更後ファイル名>); サンプルコード open(TEST,">test.txt");#test.txt を作成 close(TEST); rename("test.txt", "test2.txt"); コマンドライン引数を取得 $ARGV[<取得する引数の順番>] 現在の日付と時刻を取得 localtime サンプルコード

($Sec, $Min, $Hour, $Day, $Month, $Year) = localtime;

print 1900 + $Year ,"年", $Month + 1 ,"月$Day 日$Hour 時$Min 分$Sec 秒 \n"; フォルダ内のすべてのファイルについて処理 while($String = readdir(<ディレクトリハンドル>)){ サンプルコード opendir(INPUTDIRECTORY,"./"); while($FileName = readdir(INPUTDIRECTORY)){ print "$FileName\n"; }

(8)

フォルダ内のすべてのファイルについて再帰的に処理 find(\&<関数>, "<ディレクトリのパス>") サンプルコード use File::Find; find(\&process, "./"); sub process{ print "$File::Find::name\n";#ファイルの絶対パスを出力 ($_でファイル名) } ファイルの存在を確認 -e "<ファイル名>" サンプルコード open(TEST,">test.txt");#ファイルを作成 if(-e "test.txt"){ print "exist\n"; } close(TEST) 配列に同じ値をまとめて代入 (初期化) @List = (<代入する値>) x <要素数> サンプルコード @List = (0) x 5; print "@List\n"; 2 次元配列に同じ値をまとめて代入 (初期化) for(1..<行数>){push(<配列>,[(<代入する値>) x <列数>]);} サンプルコード for(1..3){push(@List2,[(0) x 5]);}

(9)

print "@{$List2[0]}\n@{$List2[1]}\n@{$List2[2]}\n"; ベクトルを代入 $Vector = vpdl(<配列>) サンプルコード use PDL; use PDL::Matrix; @List = (1,2); $Vector = vpdl(@List); print "$Vector\n"; ベクトルの成分を取得 index(<ベクトル>,<成分番号-1>) サンプルコード use PDL; use PDL::Matrix; @List = (1,2); $Vector = vpdl(@List); $Scalar = index($Vector,0); print "$Scalar\n"; 行列を代入 $Matrix = mpdl(<2 次元配列>) サンプルコード use PDL; use PDL::Matrix; @List = ([1,2],[3,4]); $Matrix = mpdl(@List); print "$Matrix\n";

(10)

単位行列を代入 identity(<行列のサイズ>) サンプルコード use PDL; use PDL::MatrixOps; $Matrix = identity(3); print "$Matrix\n"; 転置行列を算出 transpose(<行列>) サンプルコード use PDL; use PDL::Matrix; $Matrix = mpdl [[1,0],[1,1]]; $Matrix2 = transpose($Matrix); print "$Matrix2\n"; 行列の成分を取得 index2d(<行列>,<行番号-1>,<列番号-1>) サンプルコード use PDL; use PDL::Matrix; $Matrix = mpdl [[1,0],[1,1]]; $Scalar = index2d($Matrix,0,1); print "$Scalar\n";

(11)

トレースを算出 <行列>->trace サンプルコード use PDL; use PDL::Matrix; $Matrix = mpdl [[1,0],[1,1]]; $Scalar = $Matrix->trace; print "$Scalar\n"; 逆行列を算出 inv(<行列>) サンプルコード use PDL; use PDL::Matrix; use PDL::MatrixOps; $Matrix = mpdl [[1,0],[1,1]]; $Matrix2 = inv($Matrix); print "$Matrix2\n"; 行列式を算出 det(<行列>) サンプルコード use PDL; use PDL::Matrix; use PDL::MatrixOps; $Matrix = mpdl [[1,0],[1,1]]; $Scalar = det($Matrix); print "$Scalar\n";

(12)

固有値と固有ベクトルを算出 eigens_sym <行列> サンプルコード use PDL; use PDL::Matrix; use PDL::MatrixOps; $Matrix = mpdl [[1,0],[1,1]];

($Eigenvector, $Eigenvalue) = eigens_sym $Matrix; print "Eigenvectors are $Eigenvector\n";

print "Eigenvalues are $Eigenvalue\n";

ループを抜ける last サンプルコード for(1..10){ print "$_\n"; if($_ == 5){ last } } 2 重ループを抜ける last <ループ名> サンプルコード OUT:for($i=0 ; $i<10 ; $i++){

for($j=0 ; $j<10 ; $j++){ print "$i-$j\n";

if($i == 5 && $j == 5){ last OUT } }

(13)

2

実行コマンド

1 ライナーで実行 サンプルコード perl -e <コマンド> 複数行のコマンドをコマンドライン上で実行 サンプルコード perl <コマンド 1 行目> <コマンド 2 行目> ... <コマンド n 行目> [ctrl + D] ファイルから実行 サンプルコード perl <ファイルへのパス>

参照

関連したドキュメント

〜3.8%の溶液が涙液と等張であり,30%以上 では著しい高張のため,長時間接触していると

&lt; &gt;内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)&lt;9&gt;kg以上 砂 :4.5(9)&lt;16&gt;l以上 砂利 :6 (12)&lt;21&gt; l

(1) テンプレート編集画面で、 Radius サーバ及び group server に関する設定をコマンドで追加して「保存」を選択..

全国の宿泊旅行実施者を抽出することに加え、性・年代別の宿泊旅行実施率を知るために実施した。

2021(実績) 2022 2023 2024 2027

&lt;7:3&gt; Remote 1 Temp T MIN R/W Contains the minimum temperature value for automatic fan speed control based on local temperature readings. T MIN can be programmed to

と発話行為(バロール)の関係が,社会構造(システム)とその実践(行

熱源人材名 桐原 慎二 活動エリア 青森県内..