#!/usr/bin/perl use strict; use warnings; use IO::All; use Data::Dumper; use feature 'say'; my @operating_cond; my @lines = io('file.txt')->chomp->slurp; #print Dumper \@lines; for my $i (0 .. $#lines) { if ($lines[$i] =~ /operating_conditions/) { #print "$lines[$i]\n"; @operating_cond=split (operating_conditions,$lines[$i]); @operating_cond=split ("{",$operating_cond[1]); @operating_cond=split (/\(/,$operating_cond[0]); @operating_cond=split (/\)/,$operating_cond[1]); # Insert at position 12, replace 0 elements. splice @lines, $i + 5, 0, 'default_operating_conditions : "@operating_cond" ;'; last; # break loop } next; } print Dumper \@lines;