#!/usr/bin/env perl use strict; use warnings; use Path::Tiny; my @r = path (shift)->lines; s/(.*),$/.$1($1),/ for @r[1..$#r]; $r[-1] =~ s/,$/);/; print @r; #### $ cat input.txt module abc( rist_top_tck, rist_top_tdi, rist_top_tdo, $ ./double.pl input.txt module abc( .rist_top_tck(rist_top_tck), .rist_top_tdi(rist_top_tdi), .rist_top_tdo(rist_top_tdo)); $