Portál AbcLinuxu, 14. května 2025 23:52
zoul@naima:~ $ port variants perl5 perl5 has the variants: perl5_10: use perl 5.10 instead of perl 5.8 or perl 5.12 perl5_12: use perl 5.12 instead of perl 5.8 or perl 5.10
sub import { warnings->import(); strict->import(); feature->import( ':5.10' ); mro::set_mro( scalar caller(), 'c3' ); }S Modern::Perl tedy člověk nedostane například feature
unicode_strings
:
#!/usr/bin/env perl use feature 'say'; sub dump_features { my $hint_hash = (caller(0))[10]; say join " | ", keys %$hint_hash; } { use Modern::Perl; dump_features; } { use feature ':5.12'; dump_features; } __END__ feature_say | feature_state | feature_switch feature_unicode | feature_say | feature_state | feature_switch
use Modern::Perl as_of => '2009-06-23'
už zdaleka není tak sexy. Use feature ":5.12"
už je celkem blízko. V principu ale souhlasím, sám Modern::Perl používám.
definice moderního Perlu se posouváA to vadí? Zrovna tak se posouvá zbytek funkcí v core, nebo verze modulů. Nechci se domáhat verze (např.) 5.10, ale chci jen jedním příkazem zapnout strict, warnings, features, případně další dobroty. Předpokládám, že verze >=5.10 budou mít aspoň přibližně zpětně kompatibilní chování. Až vznikne nějaká zásadní nekompatibilita tak začnu teprv řešit "as of".
vypeče všechny uživatele 5.10V tomhle si odporujem. Proč myslíte, že by je to mělo vypect? Respektive, proč myslíte, že by je to mělo vypect nezanedbatelně větší mírou než libovolná jiná změna mezi těmi verzemi perlu?
use feature ":5.12"
, načež mi všechen kód pozdechá, ne?
zoul@naima:~ $ /usr/bin/perl -e "use feature ':5.12'" Feature bundle "5.12" is not supported by Perl 5.10.0 at -e line 1S přechodem na novou verzi modulů samozřejmě musím počítat s tím, že mi něco nepojede. Tady bych ale narazil pokaždé, když použiju jiný „moderní“ Perl než ten úplně poslední. Možná mi něco zásadního uchází?
use Modern::Perl
znamenalo „tak moderní Perl, jak jen to jde na současném interpretu“. Přičemž na <=5.8 to nejde vůbec :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.