Zeilenanfang in einem regulaeren Ausdruck

Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 12:31:17 von unknown

Post removed (X-No-Archive: yes)

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 12:39:16 von Frank Seitz

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

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 12:43:24 von unknown

Post removed (X-No-Archive: yes)

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 13:08:44 von unknown

Post removed (X-No-Archive: yes)

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 14:10:00 von Joergen Lang

Stefan Ram schrieb:

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

....aber so unsicher, hier nachzufragen.

J.

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 15:26:27 von Frank Seitz

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

Re: Zeilenanfang in einem regulaeren Ausdruck

am 07.02.2007 21:44:29 von Frank Wiegand

Stefan Ram schrieb:

> sub getfile($)
> { my $old = $/;
> my $source;
> my $result;
> undef $/;
> if( open( $source, '<' . @_[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 @_[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

Re: Zeilenanfang in einem regulaeren Ausdruck

am 08.02.2007 12:20:08 von Christian Lackas

* 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

Re: Zeilenanfang in einem regulaeren Ausdruck

am 08.02.2007 14:59:27 von Mirco Wahab

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.

Re: Zeilenanfang in einem regulaeren Ausdruck

am 09.02.2007 01:57:32 von Christian Lackas

* 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

Re: Zeilenanfang in einem regulaeren Ausdruck

am 09.02.2007 12:12:15 von Mirco Wahab

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.

Re: Zeilenanfang in einem regulaeren Ausdruck

am 09.02.2007 22:40:28 von Christian Lackas

* 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