Hallo,
ich will mir eine kleine Bibliothek mit häufiger benötigten Regular Expressions bauen, damit ich zukünftig Korrekturen daran nur noch im Modul, nicht aber in zig Scripts vornehmen muß. Leider scheitere ich aber an meinen Perl-Kenntnissen zu Modulen (hab bisher praktisch nur vordefinierte Module benutzt, keine eigenen).
http://search.cpan.org/~nwclark/perl-5.8.8/lib/Exporter.pm
> package RE;
> use strict;
> use warnings;
> require Exporter;
funktioniert bei mir nicht mit dem strict pragma, da @ISA und @EXPORT nicht definiert sind ->
use vars qw (@ISA @EXPORT);
> @ISA = qw(Exporter);
> @EXPORT = qw($isodate);
generell nicht so gut, ich denke das werden dann bei dir noch ein bis zehn variablen mehr (vgl link). Du solltest anstelle von $EXPORT lieber $EXPORT_OK benutzen.
> our $isodate = qr/\b\d{4}-\d{2}-\d{2}\b/;
> 1;
>
> use strict;
> use warnings;
> use RE;
use RE qw($isodate);
> foreach ( "AAABBB", "a 2005-02-07 c" )
> {
> print $_."\n" if m/$RE::isodate/;
print $_."\n" if m/$isodate/;
#da Exporter, wie du sicherlich schon gelesen hast, die Namen der Exporte direkt in diesen Namespace exportiert.
> }
noch ein Nachsatz, ich würde mir einen eigenen Namespace für meine Module suchen z.B. package Robert::RE; :)
weil z.b. es das "modul" "re - Perl pragma to alter regular expression behaviour" - re.pm gibt.
Das Problem ist folgendes, der Code wird u.U. brechen, wenn das Skript unter z.b. windows ausgeführt wird, weil dort RE.pm und re.pm dasselbe sind.
gruss
Swiss Army Chainsaw
Terrorific!
Given a cow full of milk, should the milk un-cow itself, or should the cow milk itself?