Бывает, когда нет ssh-доступа и возможности набрать команду pwd, нужно узнать полный путь к файлу. В данном случае выручает библиотека File::Spec.
Пример использования:
use File::Spec;
$path = File::Spec->rel2abs($0);
Бывает, когда нет ssh-доступа и возможности набрать команду pwd, нужно узнать полный путь к файлу. В данном случае выручает библиотека File::Spec.
Пример использования:
use File::Spec;
$path = File::Spec->rel2abs($0);
Если при установке perl-модуля со cpan у вас возникает ошибка,
! Can’t configure the distribution. You probably need to have ‘make’. See /home/user/.cpanm/build.log for details.
то необходимо установить build-essential (informational list of build-essential packages).
С необходимостью установки модуля со CPAN я столкнулся при пользовании виртуальным хостингом без прав супер-пользователя (root).
В этом случае поможет local::lib.
wget http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/local-lib-2.000017.tar.gz
tar zxf local-lib-2.000017.tar.gz
cd ~/local-lib-2.000017
perl Makefile.PL --bootstrap
make test && make install
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
На cpan есть прекрасный и хорошо вам знакомый модуль LWP::UserAgent.
Запустив нижеследующий тестовый скрипт с кириллическим доменом вида http://россия.рф, мы получим 500-ую ошибку вида: 500 Can't connect to xn--aca0d8k7a0jdddbd.xn--ai3ub:80 (Bad hostname)
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://россия.рф/');
if ($response->is_success) {
print $response->decoded_content;
}
else {
die $response->status_line;
}
Пройдя регистрацию API-пролежения, собственно, необходимо попробовать его возможности на небольшом примере. Естественно, на Perl.
Ранее размещал пост о том, как просмотреть список установленных perl-модулей со CPAN. В данном материале речь зайдет о удалении CPAN-модулей.
Делается это очень просто. Создадим скрипт delete.pl с содержимым:
#!/usr/local/bin/perl -w
use ExtUtils::Packlist;
use ExtUtils::Installed;
$ARGV[0] or die "Usage: $0 Module::Name\n";
my $mod = $ARGV[0];
my $inst = ExtUtils::Installed->new();
foreach my $item (sort($inst->files($mod))) {
print "removing $item\n";
unlink $item;
}
my $packfile = $inst->packlist($mod)->packlist_file();
print "removing $packfile\n";
unlink $packfile;
И запустим его с root-правами, указав удаляемый модуль:
sudo perl delete.pl Module::Name
Чтобы посмотреть список установленных модулей CPAN, необходимо запустить perl-скрипт:
#!/usr/local/bin/perl
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules()) {
my $version = $instmod->version($module) || "???";
print "$module -- $version\n";
}
Проблема:
ОС Ubuntu 12.04. В процессе установки DBD::mysql возникла ошибка "Can't find mysql_config".
sudo cpanm DBD::mysql
Решение:
Установка дополнительного пакета libmysql++-dev:
sudo apt-get install libmysql++-dev
Renotes © 2012 -
Заметки web-разработчиков ·RSS