ラベル cpan の投稿を表示しています。 すべての投稿を表示
ラベル cpan の投稿を表示しています。 すべての投稿を表示

2007年12月12日

Net::FTP::Simple

ダウンロードされるファイルは実行パスみたい、、指定はできない模様、、。。
まぁちょっと使う程度にはいいかも。
my @received_filtered_files = Net::FTP::Simple->retrieve_files({
username => $username,
password => $password,
server => $server,
remote_dir => $remote_dir,
debug_ftp => 1,
file_filter => qr/^2007/,
mode => 'ascii',
});
debug_ftp は、以下のような感じで出る。
Net::FTP=GLOB(0x300214d4)<<< 226 Transfer complete.
Net::FTP=GLOB(0x300214d4)>>> PORT 192,168,1,2,161,249
Net::FTP=GLOB(0x300214d4)<<< 200 PORT command successful
Net::FTP=GLOB(0x300214d4)>>> RETR 20070316.txt
Net::FTP=GLOB(0x300214d4)<<< 150 Opening ASCII mode data connection for 20070316.txt (35435 bytes)
Net::FTP=GLOB(0x300214d4)<<< 226 Transfer complete.
Net::FTP=GLOB(0x300214d4)>>> PORT 192,168,1,2,161,250
Net::FTP=GLOB(0x300214d4)<<< 200 PORT command successful
Net::FTP=GLOB(0x300214d4)>>> RETR 20070317.txt
Net::FTP=GLOB(0x300214d4)<<< 150 Opening ASCII mode data connection for 20070317.txt (114635226 bytes)
それにしても、インストールの時の依存モジュールの数ったら、結構、すごいね、、、(w;

2007年7月4日

CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML

を作ってみたw ってか、パッケージ名、長すぎっ(--;)
CPAN Author になりたいけど、これが、最初のモジュールってのも、なんか自分的に嫌だなぁ、、、。
package CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML;

use strict;
use vars qw($VERSION @EXPORT);
use warnings;
use FormValidator::Simple::ProfileManager::YAML;

require Exporter;

@EXPORT = qw(
set_profiler
get_validate_profile
);
sub import { goto &Exporter::import }

$VERSION = '0.03';

sub set_profiler {
my $self = shift;
my ($path_to_profile) = @_;

if (!$self->{validate_profiler}) {
$self->{validate_profiler}
= FormValidator::Simple::ProfileManager::YAML->new(
$path_to_profile
);
}
return $self->{validate_profiler};
}


sub get_validate_profile {
my $self = shift;
return
$self->{validate_profiler}
? $self->{validate_profiler}->get_profile(@_)
: {};
}


1;
__END__
使い方としては、以下のような感じです

package MyApp;

use strict;
use warnings;

use base 'CGI::Application';

use CGI::Application::Plugin::FormValidator::Simple::ProfileManager::YAML;

sub cgiapp_init {
my $self = shift;

$self->set_profiler($path_to_profile);
}

sub mode1 {
my $self = shift;

my $profile = $self->get_validate_profile('group1');

$self->form(@$profile);

# ~云々~
}
んー、いろいろ抜けてますが、とりあえずこれでいかがでしょうか?

■追記
タイトルが長すぎて、途中で切れてるっ

2007年5月14日

CPAN に登録されている全てのモジュールのリスト

を取得するスクリプトを作ったので晒してみる。。。
#!/usr/bin/env perl

use strict;
use warnings;
use LWP::Simple;

my $url = 'http://www.cpan.org/modules/02packages.details.txt';
my $content = get($url) or die $@;

open my $fh, '> cpan_modules.txt' or die $!;
for (
split /(?:\r\n|\r|\n)/, (split /(?:\r\n|\r|\n){2}/, $content)[1]
) {
print $fh (split /\s+/, $_)[0], "\n";
}
close $fh;
ってか、勝手に "http://www.cpan.org/modules/02packages.details.txt" この URL を使わせてもらってるのだが、いいのか?
エラー処理とか改行コードとか、かなり適当な感じなのだが、、まっ、取得できたしいいかw
AAA::Demo
AAC::Pvoice
AAC::Pvoice::Bitmap
AAC::Pvoice::Dialog
AAC::Pvoice::EditableRow
AAC::Pvoice::Input
AAC::Pvoice::Panel
...
...
...
動かすと、↑こんなのが取得できる。