I had finished my code , thank you for your help!
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
my $reS = qr{\..*?\s*?\(\s*?([0-9a-zA-Z_]*?)\s*?\)}s;
my $reM = qr{\..*?\s*?\(\s*?\{\s*?(.*?)\s*?\}\s*?\)}s;
open my $fh, "analog_atop_inst.v" or die $!;
my @fields=();
my @matchM=();
my @matchS=();
my @allfield=();
my $entire_dataS = '';
my $entire_dataM = '';
while (<$fh>) { chomp; $entire_dataS .= $_; $entire_dataM .= $_; }
#print $entire_data;
while (1) {
if ($entire_dataS =~ /$reS/){
push @matchS, $1;
$entire_dataS = $';}
else {
last;}
}
while (1) {
if ($entire_dataM =~ /$reM/){
push @matchM, $1;
$entire_dataM = $';}
else {
last;}
}
#say "@@@@@@@@@@@@ MatchS @@@@@@@@@@@@@@@@@";
foreach my $fieldS (@matchS){
push @allfield, $fieldS ;
}
#say "############ MatchM #################";
foreach my $fieldM (@matchM){
my @fieldsplit = split / ,\s+/, $fieldM;
foreach my $fieldMs (@fieldsplit){
push @allfield, $fieldMs ;
}
}
foreach my $fieldT (@allfield){
say $fieldT;
}
|