I would use an XML parser for the job. For example, XML::Twig . Here is an example:
#!/usr/bin/env perl use warnings; use strict; use XML::Twig; for my $f ( @ARGV ) { my $twig = XML::Twig->new( twig_handlers => { 'Price1' => sub { $_->set_text( sprintf( "%.1f", int( $_->text) - 0.1 ) ) }, }, pretty_print => 'indented', )->parsefile( $f )->print; }
Assuming the script.pl file script.pl and the test xmlfile with content:
<root> <BirimAdi>Adet</BirimAdi> <BirimCarpan>1</BirimCarpan> <HavaleFiyati>0</HavaleFiyati> <HavaleFiyatiParaBirimi>TL</HavaleFiyatiParaBirimi> <Price1>3.3</Price1> <SatisFiyati1ParaBirimi>TL</SatisFiyati1ParaBirimi> <Isk1>0</Isk1> <SatisFiyati2>0</SatisFiyati2> </root>
Run it like this:
perl script.pl xmlfile
This gives:
<root> <BirimAdi>Adet</BirimAdi> <BirimCarpan>1</BirimCarpan> <HavaleFiyati>0</HavaleFiyati> <HavaleFiyatiParaBirimi>TL</HavaleFiyatiParaBirimi> <Price1>2.9</Price1> <SatisFiyati1ParaBirimi>TL</SatisFiyati1ParaBirimi> <Isk1>0</Isk1> <SatisFiyati2>0</SatisFiyati2> </root>
Birei source share