2010-01-01から1年間の記事一覧
perlには、chopやらchompやら改行を落とす関数がありますが、これらは改行コードを落とすには不十分です。そこで、以下のように正規表現を使って書けば、どんな改行コードでも落とせちゃいます。 $line =~ s/[\r\n]+\z//;そもそも、なんでchopやchompでは役…
shell> svn pe svn:ignore ディレクトリsvn propset svn:ignoreでもできなくて、svn propedit svn:ignoreでもできなくて、これならできた。
perlで、use strict;とかuse Data::Dumper;とかしますよね。useのあとに続く言葉に、大文字で始まったり小文字で始まったりといろいろなので、規則性を調べてみた。 useと書くときは、以下の3種類。 ■モジュールをnewするとき。 ■モジュールのメソッドをイン…
最初に、このお題の私の回答を見てくれた先輩の言葉。 ● \ は、「エスケープに使用している」のか「そういう文字そのもの」なのか常に意識して考えなくてはならない。 ●dieが適切な部分に使えるかどうかで、どれくらいのperl使いなのか分かる。 ●プログラム…
●お題 まず、自分で以下のような配列を作る。 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25 作った配列を、以下のように転置する。 1,6,11,16,21 2,7,12,17,22 3,8,13,18,23 4,9,14,19,24 5,10,15,20,25 ●回答 #! /usr/bin/perl use …
準備物は、ある一日のapacheのログが書かれたファイルです。 そして、いきなり回答です。 #! /usr/bin/perl use strict; use warnings; use Data::Dumper; my %count10; #10分ごとのカウント my %count30; #30分ごとのカウント open(FH,'<access'); # accessはログのファイル while(my $data = <FH>){ chop($data); my </access');>…
とりあえずの更新3つめ。今日上げた他の2つの記事と合わせて、後日書き直します。 $s =~ /.+/ # '/' でなくてもよい。ただし、その場合は'm'を省略することができない。 $s =~ m/.+/ $s =~ m!.+! $s =~ m%.+% $s =~ m{.+} ### URL(例) ### $_ = 'http://www.…
理解してもらうということをまったく考慮していない記事ですみません。とりあえずの更新第2弾。こちらもあとで書き直します。 $s =~ /.+/ # '/' でなくてもOK $s =~ m/.+/; $s =~ m!.+!; $s =~ m%.+%; $s =~ m{.+}; ### URL(例) ### $_ = 'http://www.keyman…
とりあえずの更新をします。あとできれいに書き直しますー。 #正規表現はなるべく長くマッチしようとする '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+) 'aaa</a><b>bbb</b><c>ccc' #最短一致=>+?もしくは*?を使用する。 '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+?)</;#=>何かが1個以上連続したあとの一番最初に来る<にマッ…
■エラー内容 Test::Moreのis_deelpyで日本語での出力「本文だよ」を期待していたが、「Wide character in print at 〜」と怒られるので解決方法を探しました。 具体的には、こんなエラー↓↓ ■原因 utf-8フラグが立っている、もしくはASCIIでない文字をTest::M…
今更ながら、ちょっと迷ってしまったのでメモします。さて、表題の答えは、偽と真どちらでしょうか。 正解は、空も0もundefも「偽」!! 忘れないようにしなきゃ。たまに、ころっと忘れる時があるんだよねぇ。。。
先輩のvim操作を盗み見してみた。 ◎複数ファイル操作 :ls ⇒今まで行ったファイル操作が見れます(バッファ一覧を見ることができる) :b数字 ⇒:lsで見た数字を入れると、そのファイル操作が実行される ■使い方例 (1)今までのファイル操作一覧を表示します :ls ⇒…
cpanは以下のurl。 http://search.cpan.org/~rjray/Image-Size-3.220/lib/Image/Size.pm 依存モジュールもたった3つ。Cのコンパイルも不要。これまた使い方がびっくりするほど簡単。◎使い方 use Image::Size qw/imgsize/; my ($width,$height)=imgsize($inpu…
■vimコマンド ●言語に合わせてコードを色付けしてくれます。 vimでファイルを開き、以下のコマンドを打つ。 (インサートモード等、別モードで作業している時は、escを押してから。) :set ft=perlいやー、便利。上の例だと、perlのコードとして色付けしてくれ…
◎お題 配列の重複している要素をまとめるサブルーチンを作り外部ファイルにしたものを、他のプログラムで呼び出し実行する。 ■サブルーチン(arrutil.pl) ※呼び出して実行するプログラムと同じディレクトリにおく。 #! /usr/bin/perl use strict; use warning…
◎お題 要素が数値だけのものと文字列だけのものと2つ配列を用意し、数値だけのものは文字列順と数値順、桁数順でそれぞれ昇順と降順に並べ替え、文字列だけのものは文字列順と文字数順でそれぞれ昇順と降順に並べ替えて出力する。 #! /usr/bin/perl use stri…
◎お題 無名サブルーチンを、引数のいらないものといるものの2パターン作り、それぞれを実行して実行結果を出力する。 #! /usr/bin/perl use strict; use warnings; my $studyB=sub{ my ($katei, $takasa, $jyoutei) = @_; my $menseki = ( $katei + $jyoutei…
◎お題 引数のいらないサブルーチンを作り、そのリファレンスを使用してサブルーチンを実行する。 #! /usr/bin/perl use strict; use warnings; #通常のやり方でサブルーチンを実行してみる &print; my $ref_sub = \&print; #二通りのやり方で、サブルーチン…
◎お題 サブルーチンを作り、そのサブルーチンのリファレンスを表示する。また、そのリファレンスをデリファレンスしてサブルーチンから結果を得る。 #! /usr/bin/perl use strict; use warnings; #計算結果を表示 print &keisan(4,5),"\n"; #サブルーチン、k…
◎本日のお題一つ目 無名配列を使用して、ネストした配列を作り、任意の値をprintする。 #! /usr/bin/perl use strict; use warnings; my @array=( 0, ['00','01',['0200','0201','0202',['020300','020301',],],], [10,11,[1200,1201,1202,[120300,120301,],…
◎本日2つめのお題 配列を定義し、その配列のリファレンスをつかってある要素の値をデリファレンスして取得する。 #! usr/bin/perl use strict; use warnings; my @array=(0,1,2,3,4,5,6,7,8,9); my $ref_array=\@array; print "\@array=@array\n"; print "\$…
先輩に、どーやったら早くプログラミングスキルが身に付きますか、と聞いてみた。答えは、「簡単なプログラムをたくさん書いて実際に動かし、仕組みを理解すること」。なので、筋トレのごとく、小さいプログラムを一日3つは書いていきたいと思います。◎今日…
※スペルミス修正(2011,03,28):2カ所記述ミスがありました。authorizes_keys→authorized_keys ※以下は、リンク先も含めて、RSA鍵(ssh version2)で鍵を作って設定をするやり方です。●以下のメモで言うところの、「sshで接続する側(個人PC、クライアント側)で…
秘密鍵と公開鍵って、どっちをリモートホスト側(sshで接続される側)に置いて、どっちをクライアント側(sshコマンドを打って接続をお願いする側)に置くか、こんがらがりませんか?私は、google検索で、鍵ペアをリモートホスト側で作るやり方とクライアント側…
(1)rootユーザーに変身します shell> sudo su - (2)passwdコマンドでユーザーのパスワードを再設定します。 shell> passwd ユーザー名ここまでやったら、再設定したパスワードをユーザーに教えて上げて、教えてもらったユーザーがsshログイン。そのあと、以…
インフラに詳しい先輩に、サーバーを用意したらまずしなければならないことを聞いてみました。 (1)OSのアップデート (2)rootログインの禁止 (3)鍵認証の設定 (4)不要なサービスの停止 (5)webサーバーの情報をブラウザに出ないようにする最低、これだけはしと…
more less cat 機能 ファイルの中身を表示する。 ファイルの中身を表示する。 ファイルの中身を連結して表示する。 特記事項 スクロールできるが、末行まで表示すると表示が終了。 スクロールできる。qを入力するまで表示は終了しない。 一画面分しか見るこ…
ハイフンが付くのと付かない場合の違いは、以下。 ■su rootに変身するが、switch userしたディレクトリのまま。 ■su - rootに変身して、rootのホームディレクトリに勝手に移動する。ハイフンが付くと、切り替え後のユーザーの環境に勝手に移動する、というこ…