script perl with sed command
Giorgos Keramidas
keramida at ceid.upatras.gr
Sun Apr 8 16:39:39 UTC 2007
On 2007-04-08 11:40, Olivier Regnier <oregnier at steelbox.org> wrote:
> Giorgos Keramidas a ?crit :
> >Try using Perl only, instead of forking sed(1), like this:
> >
> >,-----------------------------------------------------------------------
> >|
> >| #!/usr/bin/perl -Tw
> >|
> >| use strict;
> >|
> >| #
> >| # supfile_set_default_host($supfile, $newhost)
> >| # Set the default host used by the supfile $supfile to the
> >| # host name supplied as $newhost.
> >| #
> >|
> >| sub supfile_set_default_host($$);
> >| sub supfile_set_default_host($$)
> >| {
> >| my $tmpsupfile;
> >| my $supfile = shift;
> >| my $newhost = shift;
> >|
> >| if (!defined($supfile) || !defined($newhost)) {
> >| return undef;
> >| }
> >|
> >| $tmpsupfile = "tmp-" . $supfile;
> >| open(SUP, "$supfile") or die "$!";
> >| open(TMP, "> $tmpsupfile") or die "$!";
> >|
> >| my $line;
> >| while (defined($line = <SUP>)) {
> >| chomp $line;
> >| $line =~ s/^(\*[ \t]*default[ \t][ \t]*host[ \t]*=).*/$1${newhost}/;
> >| print TMP "$line\n";
> >| }
> >| close(TMP) or die "$!";
> >| close(SUP) or die "$!";
> >| rename("$tmpsupfile", "$supfile") or die "$!";
> >| return 1;
> >| }
> >|
> >| supfile_set_default_host('standard-supfile', 'cvsup.example.net');
> >|
> >`-----------------------------------------------------------------------
> [...]
>
> Hello and thanks for this perl script. I'm new in perl and when i test
> him, i have an error that says:
>
> No such file or directory at myscript.pl line 18
>
> line 18 = open(TMP, "> $tmpsupfile") or die "$!";
Line 18 is not an open command, so something odd is happenning when you
copy/paste the script from your mailer. Try downloading a copy of teh
script from:
http://people.freebsd.org/~keramida/files/supfile.perl
More information about the freebsd-questions
mailing list