8 Einträge, 1 Seite |
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
#----------------------------------------------------------------------------# # sub print_helpscreen # Aufruf: print_helpscreen(*HANDLE, 'section') # Gibt Helpscreen aus angegebenen Sektion in <$HANDLE> aus. # Beispiel: print_helpscreen(*DATA, 'hilfetext') # DATA-Handle des Aufrufers # 'Sektion' bezeichnet einen in HTML-artige Tags gefassten Abschnitt, # im Beispiel: <hilfetext> ... </hilfetext> (case-insensitive) sub print_helpscreen { croak 'print_helpscreen: Missing argument' if @_ < 2; my ($handle, $section) = @_; LOOKUP_SECTION: while (my $line = <$handle>) { last LOOKUP_SECTION if $line =~ m{<$section>}i; } PRINT_LINE: while (my $line = <$handle>) { last PRINT_LINE if $line =~ m{</$section>}i; print $line; } } #----------------------------------------------------------------------------#
1 2 3 4 5 6
my $str = <<"HELP"; This is a help text. Usage: $1 [options] \tOption 1 \tOption 2 HELP
Linuxer+2008-06-08 22:09:37--
1 2 3 4 5 6 7 8 9 10 11 12 13
#----------------------------------------------------------------------------# sub print_helpscreen { my ($handle, $section) = @_; seek $handle, 0, 0; # zum Anfang des DATA-Bereichs LOOKUP_SECTION: while (my $line = <$handle>) { last LOOKUP_SECTION if $line =~ m{<$section>}i; } ... } #----------------------------------------------------------------------------#
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 27 28 29 30 31 32 33 34
#!/usr/bin/perl use strict; use warnings; my $position = tell DATA; while ( my $line = <DATA> ) { print $line; } print "\n--8<-- ( seek DATA, 0,0 ) -->8--\n\n"; # mal schauen, was er nun ausgibt: seek DATA, 0, 0; while ( my $line = <DATA> ) { print $line; } print "\n--8<-- ( seek DATA, $position, 0 ) -->8--\n\n"; # mal schauen, was er nun ausgibt: seek DATA, $position, 0; while ( my $line = <DATA> ) { print $line; } __DATA__ Dies ist mein Datenbereich, den ich später auslesen werde.
Linuxer+2008-06-09 09:56:20--es hatte seinen Grund, warum ich tell ebenfalls nannte.
...
Mit seek DATA, 0, 0; setzt Du den Zeiger innerhalb des Dateihandles auf den Anfang des Handles und somit auf den Anfang des Skriptes, nicht auf den Punkt, wo der DATA-Bereich beginnt.
1 2 3 4 5 6 7 8 9
#!/usr/bin/perl -w use strict; use String::Interpolate qw( interpolate ); my $string = <DATA>; print interpolate($string); __DATA__ Hallo\ndu da
8 Einträge, 1 Seite |