categoryPerl覚書

localtime関数

trackback1  comment0
プログラミング覚書 Perl-029

localtime関数
 現在の日時を求める
----------------------------------------------------------------------

@youbi = ('日', '月', '火', '水', '木', '金', '土');
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon += 1;
print "$year年$mon月$mday日($youbi[$wday]) $hour時$min分$sec秒\n";

----------------------------------------------------------------------
categoryPerl覚書

引数の受け取り方

trackback1  comment0
プログラミング覚書 Perl-028

引数の受け取り方
----------------------------------------------------------------------

($total, $mean) = &answer(80, 55, 75);
print "合計点数は$total点で、平均点数は$mean点です。\n";

sub answer {
($x, $y, $z) = @_;
$total = $x + $y + $z;
$mean = $total / 3;

return ($total, $mean);
}

# 合計点数は210点で、平均点数は70点です。
# 配列 @_ で引数を受け取る。
# 戻り値は多値でもOK。

----------------------------------------------------------------------
categoryPerl覚書

変換演算子

trackback1  comment0
プログラミング覚書 Perl-027

変換演算子
----------------------------------------------------------------------

$word = 'apple';
$word =~ tr/a-z/A-Z/;
print "$word\n"; # APPLE

----------------------------------------------------------------------
categoryPerl覚書

s/パターン/置換文字列/

trackback1  comment0
プログラミング覚書 Perl-026

s/パターン/置換文字列/
 「パターン」にマッチする文字列を「置換文字列」に置き換える
----------------------------------------------------------------------

$word = "This is a pen.";
$word =~ s/pen/book/;
print "$word\n"; # This is a book.

----------------------------------------------------------------------
categoryPerl覚書

関数

trackback1  comment0
プログラミング覚書 Perl-025

関数
----------------------------------------------------------------------

$wa = &tasu(66, 99);
print "$wa\n"; # 155

sub tasu {
$a = $_[0];
$b = $_[1];
$c = $a + $b;
return $c;
}

----------------------------------------------------------------------
categoryPerl覚書

平均

trackback1  comment0
プログラミング覚書 Perl-024

平均
----------------------------------------------------------------------

$sum = 0;
@a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach $b (@a) {
$sum += $b;
}
$sum /= @a;
print "平均は $sum です。\n";
# 平均は 5.5 です。

----------------------------------------------------------------------
categoryPerl覚書

map関数

trackback1  comment0
プログラミング覚書 Perl-023

map関数
----------------------------------------------------------------------

my @values = ( 53, 39, 42, 88, 15 );

# @values の各要素を 2乗したリストを作る
my @ret = map{
$_ ** 2;
} @values;

print "@values\n"; # こちらは元の値のまま
print "@ret\n"; # 2乗された結果

----------------------------------------------------------------------
categoryPerl覚書

置換

trackback1  comment0
プログラミング覚書 Perl-022

置換
----------------------------------------------------------------------

my $word = 'bcabcdaa';

# abc を *** に置換する
$word =~ s/abc/***/;

print "$word\n";
# bc***daa

categoryPerl覚書

パターン修飾子

trackback1  comment0
プログラミング覚書 Perl-021

----------------------------------------------------------------------

#
my @words = ( 'abcde', 'ABCDE', 'AAA' );

foreach( @words ){
# aかA で始まり、eかE で終わる文字列を探す
if( m/^A.*E$/i ){
print "$_\n";
}
}

categoryPerl覚書

クラスタ化とキャプチャ

trackback1  comment0
プログラミング覚書 Perl-020

クラスタ化とキャプチャ
----------------------------------------------------------------------

# クラスタ化とキャプチャ
my @filename = (
'file000.txt',
'file001.txt',
'file002.txt',
'dummy003.txt',
'file004.txt',
'file005.txt'
);

foreach( @filename ){
# file\d{3}\.txt にマッチするか調べ、\d{3} の部分をキャプチャする
if( m/file(\d{3})\.txt/ ){
print "$1\n"; # キャプチャした部分を出力
}
} # 000
# 001
# 002
# 004
# 005

----------------------------------------------------------------------
categoryPerl覚書

文字クラス

trackback1  comment0
プログラミング覚書 Perl-019

文字クラス
----------------------------------------------------------------------

my @words = ( 'aaa', 'bbb', 'ccc', 'aba' );

foreach my $word (@words){
if( $word =~ m/^[ab]{3}/ ){ # 先頭に a か b が 3文字続く
print "$word\n";
}
} # aaa
# bbb
# aba

----------------------------------------------------------------------
categoryPerl覚書

量指定子

trackback1  comment0
プログラミング覚書 Perl-018

量指定子
----------------------------------------------------------------------

my @words = ( '10', '1111', '999', '9876', '12345' );

foreach my $word (@words){
if( $word =~ m/^\d{4}$/ ){ # 4桁の数字にマッチ
print "$word\n";
}
}

----------------------------------------------------------------------
categoryPerl覚書

選択肢

trackback1  comment0
プログラミング覚書 Perl-017

選択肢
----------------------------------------------------------------------

my @words = ( 'aaaa', 'abc', 'abcde', 'xyz' );

foreach my $word (@words){
if( $word =~ m/abc|xyz/ ){ # 'abc' か 'xyz' にマッチ
print "$word\n";
}
}

----------------------------------------------------------------------
categoryPerl覚書

正規表現

trackback1  comment0
プログラミング覚書 Perl-016

正規表現
----------------------------------------------------------------------

my @filename = ( 'aaa.txt', 'txt.bmp', 'xyz.txt', 'xyz.bin', 'txt.txt.bmp' );

foreach my $file (@filename){
if( $file =~ m/\.txt$/ ){
print "$file\n";
}
}

----------------------------------------------------------------------
categoryPerl覚書

sub

trackback1  comment0
プログラミング覚書 Perl-015

sub
----------------------------------------------------------------------

sub max {
my ($a, $b) = @_;
if ( $a >= $b ) {
return $a;
} else {
return $b;
}
}

print max(3, 5), "\n";

----------------------------------------------------------------------
categoryPerl覚書

ハッシュ

trackback1  comment0
プログラミング覚書 Perl-014

ハッシュ
----------------------------------------------------------------------

my %color = (
red => 0xff0000, # 赤
green => 0x00ff00, # 緑
blue => 0x0000ff, # 青
);
printf "%#08x\n", $color{green};

----------------------------------------------------------------------
categoryPerl覚書

@ARGV

trackback1  comment0
プログラミング覚書 Perl-013

@ARGV
----------------------------------------------------------------------

# コマンドライン引数があれば出力
if (@ARGV > 0) {
print "@ARGV\n";
}

----------------------------------------------------------------------
categoryPerl覚書

open

trackback1  comment0
プログラミング覚書 Perl-012

open
----------------------------------------------------------------------

open FILE, '<', 'test.dat' or die "file open error: $!";
while( ) {
chomp;
print "$_\n";
}
close FILE;

----------------------------------------------------------------------
categoryPerl覚書

foreach

trackback1  comment0
プログラミング覚書 Perl-011

foreach
----------------------------------------------------------------------

my @a = (1, 2, 3, 4, 5);
foreach my $b (@a) {
print "$b\n";
}

----------------------------------------------------------------------
categoryPerl覚書

@:配列

trackback1  comment0
プログラミング覚書 Perl-010

@:配列
----------------------------------------------------------------------

my @numbers = ( 10, 20, 30, 40, 50 );

print "@numbers\n";

----------------------------------------------------------------------
categoryPerl覚書

until

trackback1  comment0
プログラミング覚書 Perl-009

until
----------------------------------------------------------------------

my $num = 0;
until( $num >= 10 ){
print "$num\n";
$num++;
}

----------------------------------------------------------------------
categoryPerl覚書

while

trackback1  comment0
プログラミング覚書 Perl-008

while
----------------------------------------------------------------------

my $num = 0;
while( $num < 10 ){
print "$num\n";
$num++;
}

----------------------------------------------------------------------
categoryPerl覚書

?:三項演算子

trackback1  comment0
プログラミング覚書 Perl-007

?:三項演算子
----------------------------------------------------------------------

my $num1 = 100;
my $num2 = 200;

my $min = ( $num1 <= $num2 ) ? ( $num1 ) : ( $num2 );
print "小さいのは $min\n";

----------------------------------------------------------------------
categoryPerl覚書

elsif

trackback1  comment0
プログラミング覚書 Perl-006

elsif
----------------------------------------------------------------------

print "何か数値を入力して下さい\n";
my $num = ;
chomp $num;

if( $num < 0 ){
print "入力されたのは負数です\n";
}elsif( $num > 0 ){
print "入力されたのは正数です\n";
}else{
print "入力されたのは0です\n";
}

----------------------------------------------------------------------
categoryPerl覚書

if

trackback1  comment0
プログラミング覚書 Perl-005

if
----------------------------------------------------------------------

print "何か数値を入力して下さい\n";
my $num = ;
chomp $num;

if( $num % 2 == 0 ){
print "入力されたのは偶数です\n";
}else{
print "入力されたのは奇数です\n";
}

----------------------------------------------------------------------
categoryPerl覚書

chomp

trackback0  comment0
プログラミング覚書 Perl-004

chomp
----------------------------------------------------------------------

print "入力を待ってます\n";
$a = ;
chomp $a; #改行削除
print "$a\n";

----------------------------------------------------------------------
categoryPerl覚書

<STDIN>:入力

trackback0  comment0
プログラミング覚書 Perl-003

<STDIN>:入力
----------------------------------------------------------------------

print "入力を待ってます\n";
$a = <STDIN> ;
print "$a\n";

----------------------------------------------------------------------
categoryPerl覚書

$:スカラー変数

trackback0  comment0
プログラミング覚書 Perl-002

$:スカラー変数
----------------------------------------------------------------------

$a = 777;
print "$a\n";

----------------------------------------------------------------------

categoryPerl覚書

PerlでHello

trackback0  comment0
プログラミング覚書 Perl-001

PerlでHello
----------------------------------------------------------------------

print "Hello, World\n";

----------------------------------------------------------------------
New «‡Top‡» Old