One Hat Cyber Team
Your IP :
18.221.180.177
Server IP :
103.133.214.160
Server :
Linux venus.ewebguru.net 4.18.0-553.30.1.el8_10.x86_64 #1 SMP Tue Nov 26 02:30:26 EST 2024 x86_64
Server Software :
Apache/2
PHP Version :
8.1.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
perl-Parse-RecDescent
/
demo
/
View File Name :
demo_restructure_easy.pl
#!/usr/bin/perl -w # CONVERT FROM ONE EXTERNAL STRUCTURE TO A # SLIGHTLY DIFFERENT INTERNAL STRUCTURE # # LOCALIZED RULEVARS ARE ALWAYS EASIEST WHEN CHANGING STRUCTURES # SEE demo_restructure_painful.pl FOR ANOTHER APPROACH THAT SHOWS WHY use strict; use Parse::RecDescent; use Data::Dumper; my $grammar = q( file: <rulevar: local $file> file: section(s) { $file } section: header '{' body '}' { $file->{$item[1]} = $item[3] } header: 'Domain=' /.+/ body: <rulevar: local $body> body: line(s) { $body } line: lineA | lineB lineA: /[^\W_]+/ '=' /.+/ { $body->{$item[1]} = $item[3] } lineB: /[^\W_]+/ '_' /[^\W_]+/ '=' /.+/ { $body->{$item[1]}{$item[3]} = $item[5] } ); my $parser = Parse::RecDescent->new($grammar); my $text; my @text = <DATA>; foreach (@text) { next if /^\#/; # Strip comments $text .= $_; } my $f = $parser->file($text); print Dumper ($f); __DATA__ # # Domain=domain1 { P1_Name=n1 P1_Address=host1:port1 P2_Name=n2 P2_Address=host2:port2 } Domain=domain2 { f1=v1 f2=v2a v2b #comment }