#!/usr/bin/perl -w # file KLEIDER/web/src/pinw/pival.pl # Wert einer Verarbeitungs-Anweisung # 2020-05-24 Herbert Schiemann use utf8; # Dieser Quelltext ist utf-8-kodiert use Herbaer::Readargs; # read_args () binmode (STDERR, ":encoding(utf-8)"); binmode (STDOUT, ":encoding(utf-8)"); my $args = { "[cnt]verbose" => 0, "pi" => "install", "key" => "location", "mode" => "auto", "maxlines" => 10, }; # gibt die Version nach STDOUT aus sub version { print << 'VERSION'; KLEIDER/web/src/pinw/pival.pl Wert einer Verarbeitungs-Anweisung 2020-05-24 Herbert Schiemann VERSION }; $args -> {"[sr]version"} = sub { version (); exit 0; }; $args -> {"[sr]help"} = sub { version (); print_message_with_values (<<"HELP", $args); usage $0 [option] ... < file $0 --help zeigt diese Hilfe an $0 --version zeigt die Programm-Version an $0 [option]... --[no_]verbose Meldungen nach STDERR ausgeben \${[cnt]verbose} --pi PI Name der Verarbeitungsanweisung \${pi} --key KEY Name der Pseudo-Attributs \${key} --mode MOD Art der Kommentierung: auto | xml | script | c | sql | lisp \${mode} --maxlines MAXLINES die ersten MAXLINES Zeilen werden durchsucht \${maxlines} HELP exit 0; }; # help read_args ($args); my $line; my $ln = 0; my $maxln = $args -> {"maxlines"}; my $mode = $args -> {"mode"}; my $pi = quotemeta ($args -> {"pi"}); my $key = quotemeta ($args -> {"key"}); my $verb = $args -> {"[cnt]verbose"}; $pi = "<\\?$pi" . "(?>\\s+[a-zA-Z0-9_-]+\\s*=\\s*\"[^\"]*\")*?" . "(?>\\s+$key\\s*=\\s*\"([^\"]*)\")" . "(?>\\s+[a-zA-Z0-9_-]+\\s*=\\s*\"[^\"]*\")*" . "\\s*\\?>"; my $re; while (defined ($line = ) && $ln++ < $maxln) { if ($ln == 1) { if ($mode eq "auto") { $mode = $line =~ /^