Портативный способ запуска простого скрипта при запуске

Глядя на ваш фрагмент, похоже, что у вас есть XML, разделенный 'number ='. Так что извлеките с помощью split:

#!/usr/bin/env perl
use strict;
use warnings;

use Data::Dumper;

local $/;
my @xml_chunks = split ( /\d+\=/, <> );
print Dumper \@xml_chunks;

Конечно, вы, вероятно, должны заметить - ваш XML ... нет. Декларация недействительна. Я собираюсь предположить, что это ошибка транспонирования. Но это должно быть примерно таким:

<?xml version="1.0" encoding="utf-8"?>

Таким образом, с вашими образцами данных это будет разумным приближением к исправлению XML (при условии, конечно, что он недействителен).

#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
use Data::Dumper;

local $/;
my @xml_chunks = split( /\d+\=/, <DATA> );
print Dumper \@xml_chunks;

foreach my $chunk ( grep {/xml/} @xml_chunks ) {
    $chunk =~ s/^<[^>]+>//;
    my $twig = XML::Twig->new( pretty_print => 'indented_a' );
    $twig->parse($chunk);
    $twig->set_encoding('utf-8');
    $twig->set_xml_version('1.0');
    $twig->root->set_att( 'xmlns', 'http://www.some_ns.com' );
    $twig->print;
}
0
20.03.2019, 15:05
1 ответ

Я бы просто поместил это в /etc/rc.localвместо:

umask 0222 && mkdir -p /tmp/u/

Создавать сервис вокруг этого кажется слишком сложным.

1
28.01.2020, 02:42

Теги

Похожие вопросы