Schrift
[thread]6696[/thread]

like:start ... like:end: Paar Stück zeilen ausschneiden

Leser: 1


<< >> 7 Einträge, 1 Seite
polkana
 2005-02-11 00:52
#51633 #51633
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo Leute,
Habe heute eine Software-upgrade gemacht, und sollte ja eine function verbessern.
Allso es war immer bei mir gut funktioniert mit
Code: (dl )
s/$match/$replache/;

es sollte Apache httpd.conf gescannt werden und dann eine <VirtualHost>......</Virtualhost> bei der anfrage loschen.

Und nun wollte ich das verbessern, mit so gennante "Markierung", wo ich z.b mache
Code: (dl )
1
2
3
4
5
#domain.de:start
<VirtualHost *:80>
......
</Virtualhost>
#domain.de:end

Wenn das markert ist, dann findet diese funktion die "start" ,  "end" und dann was zwieschen ist schneidet aus.

Ich sollte das probieren. Trotzdem das war für mich noch eine große Probleme.
Kann Jemand was dazu einfügen?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$domain = 'domain.net';
open(F, '< /usr/local/cpanel/text.txt') or die($!);
my @F = <F>;
close(F);
       foreach (@F) {
           if (/\#$domain:start/i)
           {
               #do {                #das funzt nicht... leider
               #        $line .= ''; #next schneidet nur erste Zeile.
               #} while ($_ !~ /\#$domain:end/i);
           }
               $line .= $_;
       }
print $line;


danke.
Alexander.\n\n

<!--EDIT|polkana|1108076171-->
frodus
 2005-02-11 01:05
#51634 #51634
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Warum machst Du dass nicht mit einem qualifier,
der Dir Anzeigt, dass du den start punkt gefunden hast.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $cut = 0;
my $res;
foreach (@f) {
   if (/\#domain:start/) {
       $cut = 1;
   }
   if (/\#domain:end/) {
       $cut = 0;
   }
   if {!$cut} {
      push(@res, $_}
   }
}


/Frodus\n\n

<!--EDIT|frodus|1108076781-->
polkana
 2005-02-11 01:15
#51635 #51635
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm... das ist ja das was muss es sein. This worked!
so lernt man sich immer ;)
danke Frodus!
Ronnie
 2005-02-11 09:16
#51636 #51636
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Du kannst auch den Flip-Flop-Operator (/#domain:start/../#domain:end/) verwenden:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my @set;
while(<DATA>) {chomp; push @set, $_ if (/#domain:start/../#domain:end/)}
print Dumper \@set;
exit;

_ _DATA_ _
bla bla
bla
#domain:start
Hello
World
#domain:end
blub
[E|B]
 2005-02-11 20:10
#51637 #51637
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
Du kannst auch den Flip-Flop-Operator (/#domain:start/../#domain:end/) verwenden:


Was macht der? Noch nie gesehen...
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Ronnie
 2005-02-11 20:15
#51638 #51638
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[E|B
,11.02.2005, 19:10]Was macht der? Noch nie gesehen...

Probier das obige Beispiel doch mal aus ;)
Guter Artikel zur Thematik: http://www.perl.com/pub/a/2004/06/18/variables.html
[E|B]
 2005-02-11 22:17
#51639 #51639
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Merci, sehr interessant!
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
<< >> 7 Einträge, 1 Seite



View all threads created 2005-02-11 00:52.