[Warszawa-pm] assert() w 5.10

Piotr Roszatycki piotr.roszatycki w gmail.com
Pią, 12 Gru 2008, 04:16:32 PST


To ja do asercji polecam jeszcze Test::Assert, w którym można je
włączyć globalnie, tzn:

perl -MTest::Assert skrypt.pl

włączy je w każdym z modułów, który używa:

package My::Package;
use Test::Assert ':all', 'DEBUG';
assert_true( 0 == 1 ) if DEBUG;  # i tu się wywali jeśli użyliśmy
-MTest::Assert albo nie
                                                        # jeśli
domyślnie jest to wyłączone
print "OK\n";

A propos perlowych zagwodek: aby uzyskać anonimowy uchwyt, Radek
proponuje użyć Symbol::gensym. Otóż nie lubię go, bo oto co dostaję
przy "die":

$ perl -ale 'use Symbol; $fh=Symbol::gensym; open $fh, "/etc/passwd";
<$fh>; die '
Died at -e line 1, <GEN0> line 1.

A to dostaję, gdy użyję nieco kryptycznego "select select":

$ perl -ale 'select select $fh; open $fh, "/etc/passwd"; <$fh>; die'
Died at -e line 1, <$fh> line 1.

To samo jest też przy zwykłym 'open my $fh, "/etc/passwd";", ale w
przypadku powyżej chodziło o stworzenie anonimowego i jeszcze nie
otwartego handlera.

W dniu 10 grudnia 2008 15:59 użytkownik Radoslaw Zielinski
<radek w pld-linux.org> napisał:
> Hm, zostaje Carp::Assert.

-- 
 .''`.    Piotr Roszatycki
: :' :    mailto:Piotr.Roszatycki w gmail.com
`. `'     mailto:dexter w debian.org
  `-


Więcej informacji o liście Warszawa-pm