Zeilenanfang in einem regulaeren Ausdruck

Post removed (X-No-Archive: yes)
Notifier Deamon [ Mi, 07 Februar 2007 12:31 ] [ ID #1622226 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Stefan Ram wrote:

> Mit anderen Worten: Perl verhält sich so, als hätte ich noch
> den Modifizierer »m« angegeben; das »^« steht für den Anfang
> des gesamten Textes und nicht einer Zeile. Ich habe aber nicht
> »m« verwendet.
>
> Nun kann ich ja damit leben, alle regulären Ausdrücke so zu
> schreiben, als hätte ich »m« verwendet, würde aber gerne
> auch verstehen, warum dies nötig ist.

Es ist eben so.
^ steht für den Anfang der Zeichenkette.
Wenn Du möchtest, dass es für den Anfang jeder Zeile
in der Zeichenkette steht, musst Du den Modifier m angeben.

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Mi, 07 Februar 2007 12:39 ] [ ID #1622227 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Post removed (X-No-Archive: yes)
Notifier Deamon [ Mi, 07 Februar 2007 12:43 ] [ ID #1622228 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Post removed (X-No-Archive: yes)
Notifier Deamon [ Mi, 07 Februar 2007 13:08 ] [ ID #1622229 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Stefan Ram schrieb:

> Aha! Dann habe ich es genau verwechselt und war mir zu sicher,
> um nachzulesen. Danke!

....aber so unsicher, hier nachzufragen.

J.
Joergen Lang [ Mi, 07 Februar 2007 14:10 ] [ ID #1622230 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Joergen Lang wrote:
> Stefan Ram schrieb:
>>
>> Aha! Dann habe ich es genau verwechselt und war mir zu sicher,
>> um nachzulesen. Danke!
>
> ...aber so unsicher, hier nachzufragen.

....oder sehr sicher, dass es ein Bug in Perl sein muss ;-)

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Mi, 07 Februar 2007 15:26 ] [ ID #1622231 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Stefan Ram schrieb:

> sub getfile($)
> { my $old = $/;
> my $source;
> my $result;
> undef $/;
> if( open( $source, '<' . [at] _[0] ))
> { $result = <$source>;
> close( $source ); }
> $/ = $old;
> return $result; }

Wenn wir schon am Verbessern sind:

sub getfile {
my $result;
if( open(my $source, '<', $_[0]) ) {
local $/;
$result = <$source>;
close $source;
}
return $result;
}
__END__

- use warnings, dann bemerkst du sowas wie [at] _[0]
- perldoc -f local
- ich weiß grade gar nicht, wann das 3-arg open eingeführt wurde, aber es
ist gewiss schon vor 2000 gewesen
- weißt du, was der $-Prototype macht? Wenn nicht, dann lass ihn weg.
- close wird noch nicht auf Erfolg geprüft ...


Grüße, Frank
Frank Wiegand [ Mi, 07 Februar 2007 21:44 ] [ ID #1622232 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

* Frank Wiegand [2007-02-07]:

Hallo Frank,

> Wenn wir schon am Verbessern sind:
> sub getfile {
> my $result;
> if( open(my $source, '<', $_[0]) ) {
> local $/;
> $result = <$source>;
> close $source;
> }
> return $result;
> }

sub getfile {
open my $source, '<', $_[0] or return; # besser: ... die $!;
local $/;
<$source>
}

> - close wird noch nicht auf Erfolg geprüft ...

Um das close haette ich mir jetzt weniger Sorgen gemacht.
Was soll dabei ernsthaft schiefgehen, und es wird sowieso implizit
ausgefuehrt, wenn der Block verlassen wird.

Gruss
Christian

--
Wenn Sie nichts zu tun haben, bitte tun sie es nicht hier.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Christian Lackas [ Do, 08 Februar 2007 12:20 ] [ ID #1623500 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Christian Lackas wrote:
> sub getfile {
> open my $source, '<', $_[0] or return; # besser: ... die $!;
> local $/;
> <$source>
> }

...
sub getfile { `cat $_[0]` }

...
...

print getfile 'test.dat';


scnr,

Viele Grüße

M.
Mirco Wahab [ Do, 08 Februar 2007 14:59 ] [ ID #1623501 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

* Mirco Wahab [2007-02-08]:

Hallo Mirco,

> Christian Lackas wrote:
> > sub getfile {
> > open my $source, '<', $_[0] or return; # besser: ... die $!;
> > local $/;
> > <$source>
> > }
> sub getfile { `cat $_[0]` }
> print getfile 'test.dat';

Can't exec "cat": No such file or directory

Gruß
Christian

--
Assembler ist eine Methode, Programme, die zu langsam laufen,
so umzuschreiben, daß sie überhaupt nicht mehr laufen.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Christian Lackas [ Fr, 09 Februar 2007 01:57 ] [ ID #1624731 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

Christian Lackas wrote:
> * Mirco Wahab [2007-02-08]:
>> sub getfile { `cat $_[0]` }
>> print getfile 'test.dat';
>
> Can't exec "cat": No such file or directory

C:\WINDOWS>cat --version

cat (textutils) 2.1
Written by Torbjorn Granlund and Richard M. Stallman.
[...]

C:\WINDOWS>


z.B. von hier:
==> http://www.weihenstephan.de/~syring/win32/UnxUpdates.zip

Viele Grüße

M.
Mirco Wahab [ Fr, 09 Februar 2007 12:12 ] [ ID #1624733 ]

Re: Zeilenanfang in einem regulaeren Ausdruck

* Mirco Wahab [2007-02-09]:

Hallo Mirco,

> > Can't exec "cat": No such file or directory
> C:\WINDOWS>cat --version

$ which cat
/bin/cat

und trotzdem nicht portabel. Oder performat, oder sicher, oder
zuverlässig.

Gruß
Christian

--
Murphys Law 25:
Hast Du Zweifel an dem was Du sagst, nuschle!
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Christian Lackas [ Fr, 09 Februar 2007 22:40 ] [ ID #1624734 ]
Perl » de.comp.lang.perl.misc » Zeilenanfang in einem regulaeren Ausdruck

Vorheriges Thema: SUID root
Nächstes Thema: PDF::API2