Абсолютный путь файла perl-скрипта

Бывает, когда нет ssh-доступа и возможности набрать команду pwd, нужно узнать полный путь к файлу. В данном случае выручает библиотека File::Spec.

Пример использования:

use File::Spec;
$path = File::Spec->rel2abs($0);

Ошибка при установке cpan-модуля: ! Can’t configure the distribution

Если при установке 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).

Установка perl-модуля без root-доступа

С необходимостью установки модуля со 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

LWP::UserAgent и кириллические .рф

На 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;
}

Facebook::Graph. Добавление поста, фотографии

Пройдя регистрацию API-пролежения, собственно, необходимо попробовать его возможности на небольшом примере. Естественно, на Perl.

Perl Facebook::Graph

Удаление 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

Чтобы посмотреть список установленных модулей 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";
}

DBD::mysql - ошибка "Can't find mysql_config"

Проблема:

ОС Ubuntu 12.04. В процессе установки DBD::mysql возникла ошибка "Can't find mysql_config".

sudo cpanm DBD::mysql

Решение:

Установка дополнительного пакета libmysql++-dev:

sudo apt-get install libmysql++-dev