Linux: sshfs через sudo

Для Ubuntu или Debian в опции монтировании необходимо добавить атрибут:

sshfs user@server:/home /your/path -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server"

Perl: функция форматирования денежных сумм

Функция выглядит следующим образом:

sub formating_money {
	my $num = shift;

	my $rounded = $num;
	if ($num =~ m|\.|) {
		$rounded = sprintf("%.2f", $num);
	}

	while ($rounded =~ s/^(-?\d+)(\d\d\d)/$1\n$2/){};

	return $rounded;
}

Проверка существования файла в Perl

Вы можете проверить, существует ли файл с помощью оператора -e.

my $file = '/path/file.pl';
if (-e $file) {
	print "file exists\n";
}

Пример простого telegram-бота на Perl

Рабочий perl-код с комметариями ниже. Описывать считаю бессмысленным, если ты перловик.

undefined

Perl: Тернарный оператор ?:

Когда Ларри выбирал, какие операторы должны быть доступны в Perl, он не захотел обижать бывших программистов C. А это значит, что в Perl переносится и самый запутанный оператор C – тернарный оператор ?:. Впрочем при всей запутанности он может быть весьма полезен. Тернарный оператор напоминает проверку ifQthenQelse, упакованную в одно выражение. Оператор называется «тернарным», потому что он получает три операнда. Оператор выглядит примерно так: 

выражение ? выражение_для_true : выражение_для_false

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

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

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

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

Perl: рандомный элемент из массива

Пример вывода случайного элемента из массива на Perl:

my @arr = ('foo', 'bar', 'baz');
print random(@arr);

sub random {
	my @values = @_;
	return $values[int rand scalar @values];
}

Работа с фреймворком Mojolicious

В тексте заметки несколько приемов работы с фреймворком Mojolicious, которые серьезно упрощают жизнь.

Установка 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

Постфиксное разыменование

Принят патч, который убирает статус экспериментальной у возможности постфиксного разыменования. Напомним, что постфиксное разыменование впервые появилось в Perl 5.20 и позволяет использовать новый синтаксис для разыменования:

$array_ref->@*; # вместо @{ $array_ref }
$hash_ref->%*;  # вместо %{ $hash_ref }