in reply to perl one liner to replace matching string
Hello vinoth.ree,
With warnings:
use strict; use warnings; while (<DATA>) { s/(@Filetyp\s*?:)/\1c/; print; } __DATA__ @header_start @Titel : init @Filename : test.c @Filetyp : @Version : 0001 @Produkt : xx @delivery : xx @date : 20160610 @header_end
Output:
0:54 >perl 1895_SoPW.pl Possible unintended interpolation of @Filetyp in string at 1895_SoPW.p +l line 18. \1 better written as $1 at 1895_SoPW.pl line 18. Global symbol "@Filetyp" requires explicit package name (did you forge +t to declare "my @Filetyp"?) at 1895_SoPW.pl line 18. Execution of 1895_SoPW.pl aborted due to compilation errors. 17:41 >
Perl sees @Filetyp as an (empty) array. Escape the sigil (and change \1 to $1):
s/(\@Filetyp\s*?:)/$1 c/;.Output:
17:44 >perl 1895_SoPW.pl @header_start @Titel : init @Filename : test.c @Filetyp : c @Version : 0001 @Produkt : xx @delivery : xx @date : 20160610 @header_end 17:44 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: perl one liner to replace matching string
by vinoth.ree (Monsignor) on Jun 10, 2018 at 08:05 UTC | |
by Athanasius (Archbishop) on Jun 10, 2018 at 08:28 UTC | |
by Veltro (Hermit) on Jun 10, 2018 at 20:06 UTC | |
by vinoth.ree (Monsignor) on Jun 10, 2018 at 16:58 UTC | |
by AnomalousMonk (Archbishop) on Jun 10, 2018 at 18:44 UTC |