memo.xight.org

Home > Changelogメモ > Perl > 6ページ目 (全6ページ)
ChangeLog 最新ページ / カテゴリ最新ページ / 前ページ 1 2 3 4 5 6 / 6ページ目 (全6ページ)
2008-12 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2004-05-29 Sat

Perl表技集

- Reference
  Perl表技集
  http://www2u.biglobe.ne.jp/~MAS/perl/waza/menu.html
- via
  cl.pocari.org - 2004-05-29
  http://cl.pocari.org/2004-05.php#2004-05-29-2

カテゴリ: [Perl]

2004-04-16 Fri

バッドノウハウカンファレンス2004

- 行く予定
  2004-05-14 18:30 - 21:00
  国立オリンピック記念青少年総合センター センター棟 403室
- Reference
  Shibuya Perl Mongers
  http://shibuya.pm.org/blosxom/techtalks/bkcon.html

カテゴリ: [Perl]

2004-01-10 Sat

曜日を算出するには

- Summary
  ツェラーの公式を利用する
- サンプルソース 2000年1月1日の曜日を算出する

$y = 2000;
$m = 1;
$d = 1;
# 1月は13月,2月は14月とみなす
if ($m < 3) {
	--$y;
	$m+=12;
}
$w = ($y + int($y/4) - int($y / 100) + int($y/400) + int((13 * $m + 8) / 5) + $d) % 7;
print "\$w = $w\n";
# $w=6 つまり土曜日で正解です

- Reference
  とほほのWWW入門 - ラウンジ - 2000年01月 - perlで曜日を算出するには
  http://tohoho.wakusei.ne.jp/lng/200001/00010015.htm

カテゴリ: [Perl]

2004-01-09 Fri

Shibuya Perl Mongers 1周年記念テクニカルトーク 発表資料

- Summary
  Shibuya Perl Mongers 1周年記念テクニカルトークで発表された資料が閲覧できる!
  行きたかったイベントだけに嬉しい限り.
- Reference
  Shibuya Perl Mongers : 1周年記念テクニカルトーク 発表資料とレビューリンク集
  http://shibuya.pm.org/blosxom/techtalks/techtalks_200310_slides_and_reviews.html

カテゴリ: [Perl]

2003-11-28 Fri

DBD/DBI モジュール と Data-ShowTable

- インストール

# aptitude install libdbd-mysql-perl libdata-showtable-perl

- 使用法

use DBI;
$db  = DBI->connect('DBI:mysql:データベース名:サーバ名', ユーザー名, パスワード);
$sth = $db->prepare("SQL文");
$sth->execute;
$num_rows = $sth->rows;
print "該当 $num_rows 件\n";
for ($i = 0; $i < $num_rows; $i++) {
	@a = $sth->fetchrow_array;
	print "id=$a[0], name=$a[1] memo=$a[2] \n";
}
$sth->finish;
$db->disconnect;

- Reference
@IT - Linux Square - 快速MySQLでデータベースアプリ! - 第4回 PerlでMySQL操作CGIを作ろう
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04a.html

カテゴリ: [Perl]

2003-09-25 Thu

変数に値が設定されていなかったら値を設定する

- 問題例
  $name が設定されていなかったら $name='nobodyさん';

- 解答例1

$name ||= 'nobodyさん';

  ただし $name = 0; のときも $name = 'nobodyさん'; となってしまう罠

- 解答例2
$name = 'nobodyさん' unless defined $name;


- 自分なら
if (!(defined $name)){
	$name = 'nobodyさん';
}

- 結局 好みみたい.
- 参考
  2ch - WebProg板 - Perl コーディング初心者質問コーナー Part28 - 326
  http://pc2.2ch.net/test/read.cgi/php/1063562491/326
  2ch - WebProg板 - Perl コーディング初心者質問コーナー Part28 - 335
  http://pc2.2ch.net/test/read.cgi/php/1063562491/335

カテゴリ: [Perl]

2003-09-23 Tue

Perl MSN Messenger Client

- Regerence
  AdamJen.com: Perl MSN Messenger Client
  http://www.adamswann.com/library/2002/msn-perl/
  よろずや - EmacsでMSN Messenger
  http://www.geocities.co.jp/SiliconValley-SanJose/7474/EmacsLisp.html#messenger
- via
  たつをのChangeLog - 2003-09-04
  http://chalow.net/2003-09-04.html#2003-09-04-1

カテゴリ: [Perl]

2003-09-23 Tue

Shibuya Perl Mongers 1周年記念テクニカルトーク

- 今日締め切られた
  もう少し気づくのが早ければ.
- Reference
  http://shibuya.pm.org/blosxom/techtalks/techtalks_200310.html

カテゴリ: [Perl][Event]

2003-09-23 Tue

Shibuya Perl Mongers

- Summary
  Shibuya Perl Mongers は東京地区とくに渋谷周辺のインターネット関連企業に勤務している Perl ユーザのコミュニティ形成を目指す非営利の団体
- 主な活動内容
  プログラミング言語 Perl に関係するメンバー主催の勉強会やインターネット上での啓蒙活動や情報交換
- Reference
  Shibuya Perl Mongers
  http://shibuya.pm.org/

カテゴリ: [Perl][組織]

2003-08-14 Thu

CDDB モジュール

- フォーマット
  最後の 2 文字はトラック数 (0209d901 -> 1 枚の CD に 1 曲のみ)
  真中の 4 文字全体の時間 (bb11de62 -> 4574 秒)
  最初の 2 文字はチェックサム

- CDDB の検索の仕組
  曲数と各曲の演奏時間をキーとして検索

- Reference
CDDB

  たつをのChangeLog - 2003-08-11
  http://chalow.net/2003-08-11-2.html

カテゴリ: [Perl]

2003-07-23 Wed

CGI.pm

- 使用法
  use CGI;
  $data = new CGI;
  $name = $data->param('name');

カテゴリ: [Perl]

2003-02-22 Sat

MeCab の Perl モジュールの使用例

- 例

#!/usr/bin/env perl
use MeCab;
my $sentence = "太郎はこの本を二郎を見た女性に渡した.";
my @arg = ($0, "オプション");
my $c = new MeCab::Tagger (\@arg);
my $result = $c->parse($sentence);
print $result;
exit;


- 元の形態素と読みだけ出力したい場合 (元の形態素\t読み\n)
my @arg = ($0, qq(-F%m\t%f[7]\n));


- オプション参考
  http://cl.aist-nara.ac.jp/~taku-ku/software/mecab/format.html

カテゴリ: [Perl]

2003-01-30 Thu

CPAN を利用して Perl モジュールを楽してインストールしたい

- 初期設定

# perl -MCPAN -e shell
Are you ready for manual configuration? [yes]


  Mirror サーバを選択するところ以外は ほとんど Return でOK

- Perl モジュールインストール方法

# perl -MCPAN -e shell
cpan> install モジュール名


- Reference
  ITMedia デベロッパー - Linux Tips - Perlモジュールを楽してインストールしたい
  http://www.itmedia.co.jp/help/tips/linux/l0495.html

カテゴリ: [Perl]

2003-01-22 Wed

Perlメモ

- Summary
  やりたい事から逆引きできる.正規表現雑技が物凄い.

- http URIの正規表現

q{\b(?:https?|shttp)://(?:(?:[-_.!~*'()a-zA-Z0-9;:&=+$,]|%[0-9A-Fa-f} .
q{][0-9A-Fa-f])*@)?(?:(?:[a-zA-Z0-9](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?\.)} .
q{*[a-zA-Z](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?\.?|[0-9]+\.[0-9]+\.[0-9]+\.} .
q{[0-9]+)(?::[0-9]*)?(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f]} .
q{[0-9A-Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-} .
q{Fa-f])*)*(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f} .
q{])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])*)*)} .
q{*)?(?:\?(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])} .
q{*)?(?:#(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])*} .
q{)?};

- 正確でないが簡単なhttp URIの正規表現
s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+


- CSV形式の $line から値を取り出して @values に入れる
  (値1,値2,"値3,値3","値4""値4" → 値1 値2 値3,値3 値4"値4)
{
	my $tmp = $line;
	$tmp =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
	@values = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
	($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
}


- 配列 @array から重複した要素を取り除く
{
	my %count;
	@array = grep(!$count{$_}++, @array);
}


- 特定の項目でソートする (第 1項でソートし,さらに第 2項で降順ソートする)
@data = ('A,7,緑',
	 'C,6,青',
	 'B,4,赤',
	 'A,9,紫',
	 'A,2,黄緑',
	 'B,10,黄',
	 'C,3,青紫');
@data = map {$_->[0]}
sort {$a->[1] cmp $b->[1] or $b->[2] <=> $a->[2]}
map {[$_, split /,/]} @data;


  - ソート後のデータ
@data = ('A,9,紫',
	 'A,7,緑',
	 'A,2,黄緑',
	 'B,10,黄',
	 'B,4,赤',
	 'C,6,青',
	 'C,3,青紫');


- Reference
  大崎 博基 - Perlメモ
  http://www.din.or.jp/~ohzaki/perl.htm

カテゴリ: [Perl][正規表現]

2003-01-20 Mon

Getopt::Long の使用法

- Getopt:Long とは
  伝統的なものや GNU や POSIX の getopt() 関数のよりよい機能性をインプリメントするもの.
  Getopt::Std は 1 文字しかオプションの文字が取れない.
  Getopt::Long は `-' や `--' , `+' で始まる 1 文字以上のオプションが取れる.

- 具体的な使用法

my %options = ( help  =>  0);
$ret = GetOptions(\%options,\$pattern,'help|h');
if ($options{help}){ &usage(); }


- 配列に入れたい場合
  最後に `@' を入れる
  ex)
$ret = GetOptions('file|f=s@',\@filelist);

  --file /where/foo --file /where/var というオプションで
  @filelist =['/where/foo','/where/var']; と同じ

- 引数指定子
引数指定子 引数 引数の省略 引数省略時の値 備考
<無し> --- --- オプションが指定されると,リンク先の変数が 1 になる.
! --- --- 前に`no' を付けると否定できる.ex) --nosize とか
=s 文字列 省略不可 --- 文字列の先頭が-または--で始まっていてもオプションとはみなされない.
:s 文字列 省略可能 '' 文字列の先頭が-または--で始まっている場合は次のオプションとみなされる.
=i 整数 省略不可 --- 負の値を示すために引数の先頭に-をつけることができる.
:i 整数 省略可能 0 負の値を示すために引数の先頭に-をつけることができる.
=f 実数 省略不可 --- 負の値を示すために引数の先頭に-をつけることができる.
:f 実数 省略可能 0 負の値を示すために引数の先頭に-をつけることができる.
- 補足
  %options の中にはデフォルト値を入れておく.
  $options{help} で値が取れる.
- Reference
  Perl_man Getopt.3pm
  http://www.att.or.jp/perl/man/getopt.3pm.html

カテゴリ: [Perl]

2003-01-11 Sat

正規表現で変数を用いる際の注意点

- 問題点
  $hoge = 'hoge' という変数があった場合
  huga を ahogea と置換するために
  s/huga/a$hogea/;
  とやっても,$hogeaという変数と解釈してしまう.
  s/huga/a($hoge)a/;
  とやっても,a(hoge)aとなってしまう.
- 解決法
  s/huga/a${hoge}a/;
  ${変数名} は Perl だけでなく,Shellスクリプトなどでも応用が利くらしい.

カテゴリ: [Perl][正規表現]

2003-01-06 Mon

複数行の置換

- Summary

$out = s/hoge/huga/s;

  s を最後につける.

カテゴリ: [Perl]
2008-12 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
最終更新時間: 2008-12-02 10:52

Color Reference

ChangeLogを検索
携帯電話からアクセス!

カテゴリ

最近の話題

リンク

過去ログ

Google

QR Code

Since
2002-11-28
Update
2008-12-02 10:52
Copyright © 2005 xight.org All Rights Reserved.