<td align="right"><tt>Mon, 12 Mar 2018 09:37:45 GMT</tt></td>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
open(FILE, "<$html") || error("$html konnte nicht geöffnet werden.");
while(<FILE>){
if($_ =~ /\<tt\>/){
push(@input,split('.*\<tt\>',"$_"));
}
}
close(FILE);
foreach(@input){
if($_ =~ /\<.tt\>/){
push(@result,split('\<.tt\>.*',"$_"));
}
}
print"@result";
1 2 3 4 5 6 7 8 9 10 11 12 13
my $html = do{ local $/ = undef; <DATA>; }; # musst nur entsprechend klammern my $r = [$html =~ /<tt>(.*?)<\/tt>/g ]; print Dumper $r; __DATA__ <!-- hier html --> <tt>foo</tt> <tt>bar</tt>
1 2 3 4 5 6
open my $fh, '<', $filename or die "open($filename, ro) failed: $!"; while ( my $line = <$fh> ) { ... } close $fh;
1 2 3 4 5 6 7 8 9
open my $fh, '<', $filename or die "open($filename, ro) failed: $!"; while ( my $line = <$fh> ) { if ( $line =~ m/<tt>([^<]+)</tt> ) { print "Match: $1\n"; } } close $fh;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use strict; use warnings; use 5.010; my $line = do { local $/ = undef; <DATA>; }; my @tt_content = ($line =~ m|<\s*tt\s*>([^<]+)</\s*tt\s*>|gim); say "Found: "; say for @tt_content; __DATA__ <Tt>NEVER USE REGEX AS HTML PARSER!</tT> < tt >" Hia ha ho "</ tt > < TT >a</ tt >
2018-06-29T07:29:43 Haselnuss992Weil ein BAREWORD immer im ganzen Programm global ist.Jetzt stellt sich mir nur die Frage, warum man zum einen lieber lexikalische Filehandles statt Barewords bevorzugt und zum andern wieso man den Modus vom Dateinamen trennen sollte.
Macht das einen Unterschied?
QuoteWie und mein Code-Schnippsel ist gar nix? Ist der nix für dich? Der geht ja auch für deine speziellen Fälle.@Gwen danke für den Link, ist eine Klasse alternative!
my $line = do { local $/ = undef; <DATA>; };