#!/usr/bin/perl use Data::Dumper; use diagnostics; use warnings; use strict; undef $/; my %vars; # My vars space my $javafile = <>; # Read the java src # Read all class' bodies while ( $javafile =~ / class (\w+) (.*?)^\}/smg ) { my ($class,$body) = ($1,$2); # Read all vars' declarations while ( $body =~ /(\w+)\s*=\s*new\s+$class\s*\((.*)\)/g) { my ($variable,$parameters)=($1,$2); # Split parameters foreach my $v ( split ",",$parameters ) { # Filter bad characters $v =~ s/[ \"]//g; # Parameters falling into the black hole push @{ $vars{$class}{$variable} }, $v; } } } # Out of the space print Dumper %vars;