#!/usr/bin/perl
use strict;
use warnings;
use IO::All;
use Data::Dumper;
use feature 'say';
my @lines = io('file.txt')->chomp->slurp;
print Dumper \@lines;
for my $i (0 .. $#lines) {
if ($lines[$i] =~ /operating_conditions/) {
# Insert at position 12, replace 0 elements.
splice @lines, $i + 5, 0, 'default_operating_conditions : "AB0.5v45c" ;';
last; # break loop
}
next;
}
print Dumper \@lines;
__END__
$ perl test.pl
$VAR1 = [
'library(and_gate) {',
' delay_model : table_lookup ;',
' date : "Fri Mar 15 03:44:39 " ;',
' time_unit : 1ms ;',
' voltage_unit : 1V ;',
' current_unit : 1A ;',
'',
' operating_conditions ("AB0.5v45c") {',
' process : 1 ;',
' temperature : 45 ;',
' voltage : 0.5 ;',
' }',
'',
' input_voltage(default) {',
' vi : 0 ;',
' vh : 0.5 ;',
' vim : 0 ;',
' vin : 0.5 ;',
' }',
'',
'}'
];
$VAR1 = [
'library(and_gate) {',
' delay_model : table_lookup ;',
' date : "Fri Mar 15 03:44:39 " ;',
' time_unit : 1ms ;',
' voltage_unit : 1V ;',
' current_unit : 1A ;',
'',
' operating_conditions ("AB0.5v45c") {',
' process : 1 ;',
' temperature : 45 ;',
' voltage : 0.5 ;',
' }',
'default_operating_conditions : "AB0.5v45c" ;',
'',
' input_voltage(default) {',
' vi : 0 ;',
' vh : 0.5 ;',
' vim : 0 ;',
' vin : 0.5 ;',
' }',
'',
'}'
];
####
#!/usr/bin/perl
use strict;
use warnings;
use IO::All;
use Data::Dumper;
use feature 'say';
my @lines = io('file.txt')->chomp->slurp;
print Dumper \@lines;
for my $i (0 .. $#lines) {
if ($lines[$i] =~ /operating_conditions/) {
# split line based on white space
my @elements = split /\s+/, $lines[$i];
# remove first and last character of the string
$elements[2] =~ s/^.(.*).$/$1/;
# Insert string at position 12, replace 0 elements.
splice
@lines,
$i + 5,
0,
"default_".$elements[1]." : ".$elements[2]."";
last; # break loop
}
next;
}
print Dumper \@lines;
__END__
$ perl test.pl
$VAR1 = [
'library(and_gate) {',
' delay_model : table_lookup ;',
' date : "Fri Mar 15 03:44:39 " ;',
' time_unit : 1ms ;',
' voltage_unit : 1V ;',
' current_unit : 1A ;',
'',
' operating_conditions ("AB0.5v45c") {',
' process : 1 ;',
' temperature : 45 ;',
' voltage : 0.5 ;',
' }',
'',
' input_voltage(default) {',
' vi : 0 ;',
' vh : 0.5 ;',
' vim : 0 ;',
' vin : 0.5 ;',
' }',
'',
'}'
];
$VAR1 = [
'library(and_gate) {',
' delay_model : table_lookup ;',
' date : "Fri Mar 15 03:44:39 " ;',
' time_unit : 1ms ;',
' voltage_unit : 1V ;',
' current_unit : 1A ;',
'',
' operating_conditions ("AB0.5v45c") {',
' process : 1 ;',
' temperature : 45 ;',
' voltage : 0.5 ;',
' }',
'default_operating_conditions : "AB0.5v45c" ;',
'',
' input_voltage(default) {',
' vi : 0 ;',
' vh : 0.5 ;',
' vim : 0 ;',
' vin : 0.5 ;',
' }',
'',
'}'
];
##
##
#!/usr/bin/perl
use strict;
use warnings;
use IO::All;
use Data::Dumper;
my @lines = io('file.txt')->chomp->slurp;
for my $i (0 .. $#lines) {
if ($lines[$i] =~ /operating_conditions/) {
# split line based on white space
my @elements = split /\s+/, $lines[$i];
# remove first and last character of the string
$elements[2] =~ s/^.(.*).$/$1/;
# Insert string at position 12, replace 0 elements.
splice
@lines,
$i + 5,
0,
" default_".$elements[1]." : ".$elements[2]."";
last; # break loop
}
next;
}
# print Dumper \@lines;
io('out.txt')->appendln($_) for @lines;
__END__
$ perl test.pl
$ cat out.txt
library(and_gate) {
delay_model : table_lookup ;
date : "Fri Mar 15 03:44:39 " ;
time_unit : 1ms ;
voltage_unit : 1V ;
current_unit : 1A ;
operating_conditions ("AB0.5v45c") {
process : 1 ;
temperature : 45 ;
voltage : 0.5 ;
}
default_operating_conditions : "AB0.5v45c"
input_voltage(default) {
vi : 0 ;
vh : 0.5 ;
vim : 0 ;
vin : 0.5 ;
}
}
##
##
#!/usr/bin/perl
use strict;
use warnings;
use IO::All;
use Data::Dumper;
my @lines = io('file.txt')->chomp->slurp;
for my $i (0 .. $#lines) {
if ($lines[$i] =~ m/\s\soperating_conditions*/) {
# split line based on white space
my @elements = split /\s+/, $lines[$i];
# remove first and last character of the string
$elements[2] =~ s/^.(.*).$/$1/;
# Insert string at position 12, replace 0 elements.
splice
@lines,
$i + 5,
0,
" default_".$elements[1]." : ".$elements[2]." ;";
last; # break loop
}
next;
}
# print Dumper \@lines;
io('out.txt')->appendln($_) for @lines;
__END__
$ perl test.pl
$ cat out.txt
library(and_gate) {
delay_model : table_lookup ;
date : "Fri Mar 15 03:44:39 " ;
time_unit : 1ms ;
voltage_unit : 1V ;
current_unit : 1A ;
operating_conditions ("AB0.5v45c") {
process : 1 ;
temperature : 45 ;
voltage : 0.5 ;
}
default_operating_conditions : "AB0.5v45c" ;
input_voltage(default) {
vi : 0 ;
vh : 0.5 ;
vim : 0 ;
vin : 0.5 ;
}
}