use Encode; use Encode::Guess; use XML::RSS; use LWP::UserAgent; use HTTP::Request;
#!/usr/bin/perl
use Encode;
use Encode::Guess;
use XML::RSS;
use LWP::UserAgent;
use HTTP::Request;
my $url = 'https://perltips.twinkle.cc/index.rdf';
# 初期化
my $proxy = new LWP::UserAgent; # UseAgent の作成
my $req = new HTTP::Request(GET=>$url);
my $rss = new XML::RSS;
my $res = $proxy->request($req); # $url にアクセスする
my $xml = $res->content; # コンテンツ (この場合は RSS/XML) を取得
my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/); # 文字コードを判定
ref($enc) or die "Can't guess: $enc"; # 自動判定がうまくいかなかったときのエラー処理
# utf8 で保存 ($enc->name を decode することにより、utf8 で変数に保管される
$xml = decode($enc->name, $xml);
eval {
$rss->parse($xml);
};
if($@) { # $rss->parse が失敗したとき
print "error\n";
}
# @{$rss->{items}} に、RSS のすべてのエントリー (item) が入る
foreach my $item ( @{$rss->{items}} ) {
# ケータイ (iモード) で出力したいので Shift_JIS にする
my $title = encode('shiftjis', $item->{title});
my $description = encode('shiftjis', $item->{description}); # 上に同じ
print qq|<a href="$item->{link}">$title</a>\n|; # タイトルをリンクつきで出力
print qq|$description<br />\n|; # 概要 (description) を出力
}
exit;
use Encode; use Encode::Guess; use XML::RSS; use LWP::UserAgent; use HTTP::Request;
#!/usr/bin/perl
use Encode;
use Encode::Guess;
use XML::RSS;
use LWP::UserAgent;
use HTTP::Request;
my $url = 'https://perltips.twinkle.cc/index.rdf';
# 初期化
my $proxy = new LWP::UserAgent; # UseAgent の作成
my $req = new HTTP::Request(GET=>$url);
my $rss = new XML::RSS;
my $res = $proxy->request($req); # $url にアクセスする
my $xml = $res->content; # コンテンツ (この場合は RSS/XML) を取得
my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/); # 文字コードを判定
ref($enc) or die "Can't guess: $enc"; # 自動判定がうまくいかなかったときのエラー処理
# utf8 で保存 ($enc->name を decode することにより、utf8 で変数に保管される
$xml = decode($enc->name, $xml);
eval {
$rss->parse($xml);
};
if($@) { # $rss->parse が失敗したとき
print "error\n";
}
# @{$rss->{items}} に、RSS のすべてのエントリー (item) が入る
foreach my $item ( @{$rss->{items}} ) {
# ケータイ (iモード) で出力したいので Shift_JIS にする
my $title = encode('shiftjis', $item->{title});
my $description = encode('shiftjis', $item->{description}); # 上に同じ
print qq|<a href="$item->{link}">$title</a>\n|; # タイトルをリンクつきで出力
print qq|$description<br />\n|; # 概要 (description) を出力
}
exit;
#!/usr/bin/perl
use Encode::Guess;
use LWP::UserAgent;
use HTTP::Request;
my $url = 'https://perltips.twinkle.cc/index.rdf';
my $proxy = new LWP::UserAgent;
my $req = new HTTP::Request(GET=>$url);
my $res = $proxy->request($req);
my $xml = $res->content;
my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/);
ref($enc) or die "Can't guess: $enc"; # 自動判定に失敗したときのエラー処理
$xml = decode($enc->name, $xml); # utf8 で保存
...
#!/usr/bin/perl
use Encode::Guess;
use LWP::UserAgent;
use HTTP::Request;
my $url = 'https://perltips.twinkle.cc/index.rdf';
my $proxy = new LWP::UserAgent;
my $req = new HTTP::Request(GET=>$url);
my $res = $proxy->request($req);
my $xml = $res->content;
my $enc = guess_encoding($xml, qw/euc-jp shiftjis 7bit-jis utf8/);
ref($enc) or die "Can't guess: $enc"; # 自動判定に失敗したときのエラー処理
$xml = decode($enc->name, $xml); # utf8 で保存
...
use utf8; use Encode; use Geo::Google; use XML::Parser;
#!/usr/bin/perl
use utf8;
use Encode;
use Geo::Google;
use XML::Parser;
my $lng, $lat;
my $address1 = 'your address part 1 here';
my $address2 = 'your address part 2 here';
my ($degree) = getDegrees("$address1 $address2");
if($degree) {
$lng = $degree->longitude;
$lat = $degree->latitude;
} else {
$lng = ''; $lat = '';
}
sub getDegrees { # 住所から緯度経度を検索
return $GEO->location( address => Encode::encode_utf8(shift));
# shift = address / リファレンスを返す
}
use utf8; use Encode; use Geo::Google; use XML::Parser;
#!/usr/bin/perl
use utf8;
use Encode;
use Geo::Google;
use XML::Parser;
my $lng, $lat;
my $address1 = 'your address part 1 here';
my $address2 = 'your address part 2 here';
my ($degree) = getDegrees("$address1 $address2");
if($degree) {
$lng = $degree->longitude;
$lat = $degree->latitude;
} else {
$lng = ''; $lat = '';
}
sub getDegrees { # 住所から緯度経度を検索
return $GEO->location( address => Encode::encode_utf8(shift));
# shift = address / リファレンスを返す
}
crontab [-u user] { -l | -r | -e } ■オプション内容 -u ユーザを指定する。省略時は現在のカレントユーザになる -l 現在のcron設定を表示する -r 現在のcron設定を削除する -e 現在のcron設定を編集する。設定内容がない場合は新規作成するcrontab -e を実行し、記述する書式は次の通り。
$ crontab -e # 0分ごとに実行する 0 * * * * [コマンド] # 5分おきに実行する */5 * * * * [コマンド] # 1日1回、0時0分に実行する 0 0 * * * [コマンド] # 0 時から 23 時までの 2 時間おきに、毎 23 分ごとに実行する 23 0-23/2 * * * [コマンド] # 1月と 12月それぞれの 1〜20 日、23 時 00分に実行する * 23 1-20 1,12 * [コマンド] # 日曜日(0)から土曜日(6)まで 1分おきに実行する */1 * * * 0-6 [コマンド]日時を指定するために指定(ワイルドカード)が 5つ並んでいるが,それぞれの意味は次のようになっている。
* * * * * [コマンド] 1 2 3 4 5 ■ 日時指定方法 左から何番目 単位 指定方法 1 分 0〜59、例:*/15 2 時 0〜23、例:0-23 3 日(月) 1から31、例:1-20 4 月 1〜12 (or names)、例:1,6,12 5 日曜〜土曜 0〜6、例:0-6cron とはプログラムを自動実行するためのもの。 cron を設定するには,「crontab」と呼ばれるコマンドを利用する。オプションは次のようになっている。
crontab [-u user] { -l | -r | -e } ■オプション内容 -u ユーザを指定する。省略時は現在のカレントユーザになる -l 現在のcron設定を表示する -r 現在のcron設定を削除する -e 現在のcron設定を編集する。設定内容がない場合は新規作成するcrontab -e を実行し、記述する書式は次の通り。
$ crontab -e # 0分ごとに実行する 0 * * * * [コマンド] # 5分おきに実行する */5 * * * * [コマンド] # 1日1回、0時0分に実行する 0 0 * * * [コマンド] # 0 時から 23 時までの 2 時間おきに、毎 23 分ごとに実行する 23 0-23/2 * * * [コマンド] # 1月と 12月それぞれの 1〜20 日、23 時 00分に実行する * 23 1-20 1,12 * [コマンド] # 日曜日(0)から土曜日(6)まで 1分おきに実行する */1 * * * 0-6 [コマンド]日時を指定するために指定(ワイルドカード)が 5つ並んでいるが,それぞれの意味は次のようになっている。
* * * * * [コマンド] 1 2 3 4 5 ■ 日時指定方法 左から何番目 単位 指定方法 1 分 0〜59、例:*/15 2 時 0〜23、例:0-23 3 日(月) 1から31、例:1-20 4 月 1〜12 (or names)、例:1,6,12 5 日曜〜土曜 0〜6、例:0-6