perl copyモジュール

#File::Copyを使ってファイルをコピー #copy.pl #モジュール呼び出し #File::Copyモジュールを呼び出す use File::Copy; #引数が二つ以上の時はusageサブルーチンを呼び出してコピー命令の使い方を表示する。 if(@ARGV != 2){ #引数が2つ以上の時には使い方…

perl パッケージ

helloという名前のパッケージを定義する #パッケージ化したhelloモジュール # hello_package.pm # helloという名前でパッケージを定義 package hello; #このサブルーチンはhello::helloとして呼び出す sub hello{ my($name) = @_; print "こんにちは、$name…

perl モジュール

#BEGINとENDのテスト #begin_end.pm #BEGINルーチン BEGIN{ print "モジュールを開始しました。\n"; } #ENDルーチン END{ print "モジュールを終了しました。\n"; } 1; モジュールを読み込むスクリプト #begin_endモジュールを読み込む #begin_end_call.pl p…

perl 設定ファイルを読み込む

設定ファイルをを作成する #設定ファイル #config $name = "太郎"; 1; この設定ファイルを読み込む #設定ファイルを読み込むスクリプト # config_load.pl #初期値 $name = "匿名"; #ファイルの存在チェック if(-r "config"){ require("config"); } print "こ…

perl ライブラリとモジュール

ライブラリファイルを作る #helloライブラリ #hello_lib.pl #サブルーチン定義 sub hello{ my($name) = @_; print "こんにちは、$nameさん。\n"; } #戻り値 #ライブラリなのでスクリプトの最後に1;をつける。 1; これをrequire関数を使って読み込む #hello_l…

perl ハッシュのリファレンス

#ハッシュのリファレンスを受け取り、キーと値を逆にして返すサブルーチン #サブルーチン実行前 %hash = ( "太郎"=>"tarou", "花子"=>"hanako", "次郎"=>"jirou", ); print "実行前:\n"; print "$key => $value\n" while(($key, $value) = each(%hash)); #…

perl 無名サブルーチン

#無名サブルーチンで戻り値を直接取得する #無名サブルーチン $string = sub{ #文字列を返す return("こんにちは、私は$nameです。\n"); }; #戻り値を表示 $name = "花子"; print "戻り値:", &$string; #実行結果 # 戻り値:こんにちは、私は花子です。 初…

perl 配列のリファレンス

#配列のリファレンス @array = (1 .. 5); #サブルーチン実行前 print "実行前:",join(", ", @array), "\n"; #リファレンスを渡してサブルーチン実行 &sub_reference_array(\@array); #サブルーチン実行後 print "実行後:",join(", ", @array), "\n"; #サブ…

perl リファレンス1

#スカラー変数をリファレンスで渡し、サブルーチンで内容を変更する $string = "私は太郎です。"; #サブルーチン実行前 print "実行前: $string\n"; #リファレンスを渡してサブルーチン実行 &sub_reference(\$string); #サブルーチン実行後: print "実行後…

perl リファレンス

#スカラー変数のリファレンス #\$variable #スカラー変数のリファレンスから内容を求める # $$reference # ${$reference} #配列のリファレンス # \@array #配列のリファレンスから内容を求める # @$referece # @{$reference} #配列の特定要素を求める # $$re…

perl local と my

#合計を調べる #初期値 $sum = 10; #サブルーチン1を呼び出し &sum1(); print "合計: $sum\n"; #サブルーチン1 sub sum1{ $sum++; { local($sum); $sum++; &sum2(); } &sum3(); } #サブルーチン2 sub sum2{ $sum++; } #サブルーチン3 sub sum3{ my($sum); $s…

perl my とour

#ourとmyのテスト #グローバル変数を宣言 @global_value = (1, 2, 3); &modify_my(); print "[my後] ", @global_value, "\n"; &modify_our(); print "[our後] ", @global_value, "\n"; #myによるグローバル変数の上書き sub modify_my{ my(@global_value); p…

perl ブロック内でのローカル変数

#ブロック内でのローカル変数の定義 $variable = "グローバル"; print "サブルーチン実行前: $variable\n"; #サブルーチン呼び出し &block(); print "サブルーチン実行後: $variable\n"; #サブルーチン本体 sub block{ my($variable) = "ローカル"; print "\…

perl localとmyの違い2

#localで定義した変数が別のサブルーチンで変更できることを確認する &modify_local(); #サブルーチン本体 sub modify_local{ #ローカルで定義 local($local_value) = "元のテキスト"; #ローカルで定義 my($my_value) = "元のテキスト"; print "[実行前]\n";…

perl localとmyの違い

#localとmyのテスト #localで宣言した変数の値は別のサブルーチンから参照できるが、myで宣言下変数の値は参照できない #サブルーチン呼び出し &local_my(); #サブルーチン本体 sub local_my{ #localによる定義 local($local_value) = "太郎"; #myによる定義…

perl ハノイの塔

#ハノイの塔 #サブルーチン呼び出し &hanoi(3, "左", "中", "右"); #サブルーチン本体 sub hanoi{ my ($disk, $bar1, $bar2, $bar3) = @_; #円盤が1つ以上残っている if($disk > 0){ #再帰呼び出し1 hanoi($disk - 1, $bar1, $bar3, $bar2); #移動内容を表示…

perl return関数を使って戻り値を返す

#returnを使って戻り値を返す #サブルーチン呼び出し $string = &hello_return("花子"); #戻り値を表示 print "戻り値: $string"; #サブルーチンの定義 sub hello_return{ my($name) = @_; #文字列を返す return("こんにちは、わたしは$nameです。\n"); } #…

perl 戻り値を持つサブルーチンの呼び出し

#戻り値を持つhello_retサブルーチンの呼び出し #サブルーチン呼び出し $string = &hello_ret("花子"); #戻り値を表示 print "戻り値: $string"; #サブルーチンの定義 sub hello_ret{ my($name) = @_; #文字列を返す "こんにちは、私は$nameです。\n"; } #…

perl 引数をひとつ取るサブルーチン

#引数を取るサブルーチンの呼び出し #サブルーチン呼び出し &hello_arg("太郎"); #サブルーチンの定義 #サブルーチンの引数はリスト@_に入る。myを使ってローカル変数として定義する。 sub hello_arg{ my($name) = @_; print "こんにちは、私は$nameです。\n…

perl サブルーチン1

#helloサブルーチンの呼び出し #サブルーチンの呼び出し &hello(); #サブルーチンの定義 sub hello{ print "こんにちは、サブルーチンです。\n"; } #実行結果 # こんにちは、サブルーチンです。 初めてのPerl 第6版作者: Randal L. Schwartz,brian d foy,Tom…

perl 関数 packとunpack

#入力した文字列と数値をパックして表示した後、元の文字列に戻して再表示する。 #packとunpackのテスト #pack("format", list) #unpack("format", variable) print "文字列を入力してください>"; $string = <STDIN>; chomp($string); $length = length($string); </stdin>…

perl 関数 sort

#スペース文字で区切った数値リストを整列する print "要素をスペース文字で区切った数値のリストを入力してください>"; $numbers = <STDIN>; chomp($numbers); #ソートして表示 print join(", ", sort{$a <=> $b} (split(/\s+/, $numbers))),"\n"; #実行結果 # 要</stdin>…

perl 文字列処理関数 length

#lengthのテスト print "文字列を入力してください>"; $string = <STDIN>; chomp($string); #長さを調べる print "文字列の長さ:", length($string), "\n"; #実行結果 # 文字列を入力してください>perl is a practical extraction and report language # 文字列</stdin>…

perl 文字列処理関数 chopとchomp

#chopとchompの比較 $string1 = "perl\n"; $string2 = $string1; #chopとchompをそれぞれ2回実行する chop($string1); chop($string1); chomp($string2); chomp($string2); #表示 print "chop: $string1\n"; print "chomp: $string2\n"; #実行結果 # chop: …

perl 文字列処理関数 join

#joinを使って配列の要素を合成する #配列の各要素を文字「、」で区切って表示する。 print "文字列を入力してください:"; $string = <STDIN>; chomp($string); #スペース文字で区切る @words = split(/\s+/, $string); #各要素の間に,を入れて表示 print join(","</stdin>…

perl 文字列処理関数 split 2

#split関数を使ってスペース文字の前後の文字列を取り出す print "文字列を入力してください>"; $string = <STDIN>; chomp($string); #スペース文字で2つに区切る ($pre, $post) = split(/\s+/, $string, 2); #スペース文字の前後の文字列を表示 print "最初の文</stdin>…

perl 文字列処理関数split

#split関数を使って文字列をスペース文字で区切り、配列に代入する print "文字列を入力してください>"; $string = <STDIN>; chomp($string); #スペース文字で区切る @words = split(/\s+/, $string); foreach(@words){ #各要素を表示 print "単語:$_\n"; } #実行</stdin>…

perl 文字列処理関数 printfとsprintf

#printfとsprintfのテスト #文字列 #%sは文字列を表す変換文字。%sは「私は太郎です。」に置き換えられる。 printf("文字列:\t%s\n", "私は太郎です。"); #整数 #整数値を表す%dという変換文字、0はスペースの代わりに0を入れて右揃えにする効果、 #8は整…

perl 文字列処理関数1 print

#print関数の実験 $_ = "こんにちは。\n"; #特殊変数$_を表示 print; #ファイルprint.txtをオープン open(F, ">print.txt"); #特殊変数$_をファイルハンドルFに定義付けられているファイルprint.txtに書き出す print F; close(F); #リストを表示 print("私",…

perl 文字列の置換2

#スペースで区切られた2つの入力文字列の順番を入れ替えるスクリプト $string = <STDIN>; chomp($string); #正規表現内で()を使うと、マッチング変数$&,$`,$'は無効になり、代わりに()を順番に並べた時は、マッチした内容がその順番で特殊変数$1,$2,...に入る</stdin>…

perl 文字列の置換2

#eオプションを使って、マッチした数値を計算に使う。2つの数値をスペースで区切って入力すると、それらの数値の積を表示数r。 #スペース文字で区切った2値の積を表示 print "2つの数値をスペースで区切って入力してください。>"; $string =<STDIN>; chomp($string)</stdin>…

perl 文字列の置換1

#簡単な置き換え $string = <

perl いろいろな正規表現1

#入力された英文を単語ごとに区切り、「単語:区切られた単語」のように表示するスクリプト $ward = <STDIN>; chomp($ward); print "単語:$&\n" while($ward =~ /\w+/g); #実行結果 #There's more than one way to do it # There's more than one way to do it # </stdin>…

perl 正規表現で簡単なマッチング3

#oオプション #oオプションをつけると、最初のマッチ時に展開した変数の値をそれ以後のマッチでも使い続ける。 #配列と初期マッチ文字列の定義 @array = ("Perl ABC", "ABCDEF", "Perl", "ABC"); $serch = "ABC"; #途中で$serchの値を変更する print "oなし…

perl 正規表現で簡単なマッチング2

iオプションを使って大文字と小文字を区別しないでパターンマッチを行う #小文字のみで構成 $string = "perl"; print "「perl」にマッチ: $string\n" if ($string =~ /perl/i); #大文字のみで構成 $string = "PERL"; print "「perl」にマッチ: $string\n "…

perl 正規表現で簡単なマッチング1

gオプションをつけて、繰り返し検索を行う。 #繰り返し検索 $string = "ABCDEFABCDABC"; #gオプションとwhileで繰り返し検索する #パターンにマッチした文字列が変数$&に入る #マッチした部分の前の文字列が$`に入る #マッチした部分の後の文字列が$'に入る …

人月の神話

プログラムを作ることは、「私たちの心に深く宿っている創作意欲を満たしてくれる」、また、「私達すべての人間に共通な間隔を楽しませてくれる」ものであり、以下5種類の喜びを与えてくれる。 ●物を作る喜び ●他の人の役に立つ物を作る喜び ●パズルのような…

C言語の復習<配列>1000までの整数の全ての素数を求めるプログラム

#include <stdio.h> #define N 1000 /* Nまでの素数を求める */ #define TRUE 1 /* 真:素数である */ #define FALSE 0 /* 偽:素数でない */ char is_prime[ N+1 ]; /* 結果を格納する配列 */ int main( void ) { int i, j, k = 0; /* 配列を初期化 */ for( i = 1; i <</stdio.h>…

C言語の復習<関数>素数を判定するプログラム

JavaをやっているうちにC言語のことをすっかり忘れてしまったので少しずつ復習する。 素数を判定するプログラム #include <stdio.h> int prime(int n); int main(void) { int n; printf("自然数を入力してください>>>"); scanf("%d", &n);/*データの入力*/ printf("%d</stdio.h>…

「Mac + centOS + VMwareFusion」端末をショートカットキーで起動する設定

端方法 メニューバーのシステム→キーボードショートカットを選択 「デスクトップ」カテゴリ中の「端末の起動」を選択 ショートカットの部分に「新しいショートカット」と表示される その状態で任意のキーを押下(shift + Tにした) 以上で設定完了 Linux教科書…

Linuxのディレクトリツリー

/ ファイルシステム階層全体の第一階層(ルートディレクトリ) /bin シングルユーザモードで必要となる一般ユーザー向けの基本コマンドの実行ファイル (binaries)。例えばcat、ls、cpなど。 /boot ブートローダー (boot loader) 関連のファイル群。例えば、…

JDBCドライバの設定(mac+eclipse+tomcat+MySQL)

Javaでデータベースの接続 mac環境での資料が少なく手こずったのでメモ。 環境 MacBook Pro (15-inch, Mid 2012) OSX Yosemite 10.10.5 eclipse、tomcat、MySQLはインストール済み データベース作成 後で動作確認する時のためにDBをMySQLから作成しておく。…

ArrayListへのオブジェクトの格納と取り出し

概要 自作の従業員クラスEmployeeのオブジェクトをArrayListのオブジェクトに格納し、取り出し、削除を行う。 import java.util.ArrayList; class Employee { private int number; private String name; public Employee(int number, String name) { this.nu…

ビートルズのメンバーをHashMapで検索してみる

概要 プログラム起動時のコマンドラインから入力した名前をkeyとして、hashMapに格納したデータを検索し、その情報を表示する。検索に失敗した場合はその旨を表示する。 import java.util.HashMap; public class HashMapExample2 { public static void main(…

JavaでビートルズのメンバーをHashMapに格納してみる

概要 HashMapにビートルズのメンバーの情報を格納し、名前をkeyとして格納済み情報を取り出して表示する。 import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { HashSet<String> names = new HashSet<String>(); System.out.</string></string>…

JavaでビートルズのメンバーをHashSetに格納してみる

概要 hashSetに格納して取り出してみる。 import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { HashSet<String> names = new HashSet<String>(); System.out.println("ジョンを格納します。"); names.add("ジョン"); System.</string></string>…

ビートルズのメンバーをArrayListに格納してみる

概要 ArrayListへ文字列格納と取り出しを行う。 import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> names = new ArrayList<String>(); System.out.println("ジョンを格納します。"); names.add("ジ</string></string>…

Javaで料理をする

概要 キッチンで食材を調理する。 interface CookMaterial { public void cut(); public void roast(); public void fly(); public void boil(); public void flavoring(String seasoning); } class Carrot implements CookMaterial { String status;// 食材…

Javaで携帯電話料金プランの計算をしてみる

概要 携帯電話料金プラン枚の請求額計算システムをJavaで書いてみる。 interface Plan { public int getBill(int call, int packet); public String getPlanName(); } class DummyPlan implements Plan { public DummyPlan() { System.out.println("デバッグ…

Javaで昆虫の飼い主を表現する

概要 昆虫を買う飼い主が昆虫の世話をする挙動を確認する。 class PetOwner { Insect insct; public PetOwner(Insect insct) { System.out.println(insct + "の飼い主です"); this.insct = insct; } public void feed() { System.out.println(insct + "にエ…