function test (aaaaa) { var myTest1 = 1; var myTest2 = 2, myTest3 = 3, myTest4; var myTest5 = new Array(__QUOTE__,__QUOTE__), myTest6; var myTest7 =__REGEX__; var myTest8 = myTest5.x; var myTest9 = myTest[0], myTest10 = myTest[0]; var myTest11 = (myTest1 == myTest2); var myTest12 = (myTest1 == myTest2), myTest13 = 2; var myTest14 = (myTest1 == myTest2), myTest15; var myTest16 = new Array(1, 2); var myTest17 = new(blah), myTest18 = new(blah,blah2), myTest19; } #### my (@localDeclaredVars) = ($strInput =~ m/\bvar\s+([^;]+)/g); foreach my $localDeclaredVar (@localDeclaredVars) { if ($localDeclaredVar =~ m/,/) { # We have multiple variables declared in one line. @localDeclaredSubVars = $localDeclaredVar =~ m{ ( # Grab the variable name \w+ ) \s* (?: # Suck up any possible values of that variable = \s* (?: # A variable with parentheses and possible comma (?: \( (?: \\. [^\)\\]* )* \) ) | (?: # A straight variable or value [^,]+ ) )* )? ,? }gx; print "\n$localDeclaredVar\n"; foreach my $localDeclaredSubVar (@localDeclaredSubVars) { if ($localDeclaredSubVar =~ m/=/) { ($localDeclaredSubVar) = ($localDeclaredSubVar =~ m/\s*([^= ]+)\s*=/); } print " $localDeclaredSubVar\n"; push (@localVariables, $localDeclaredSubVar) if ($localDeclaredSubVar); } } else { # We have a single variable declaration. print "\n$localDeclaredVar\n"; if ($localDeclaredVar =~ m/=/) { ($localDeclaredVar) = ($localDeclaredVar =~ m/\s*([^= ]+)\s*=/); } print " $localDeclaredVar\n"; push (@localVariables, $localDeclaredVar) if ($localDeclaredVar); } } #### myTest1 = 1 myTest1 myTest2 = 2, myTest3 = 3, myTest4 myTest2 myTest3 myTest4 myTest5 = new Array(__QUOTE__,__QUOTE__), myTest6 myTest5 __QUOTE__ myTest6 myTest7 =__REGEX__ myTest7 myTest8 = myTest5.x myTest8 myTest9 = myTest[0], myTest10 = myTest[0] myTest9 myTest10 myTest11 = (myTest1 == myTest2) myTest11 myTest12 = (myTest1 == myTest2), myTest13 = 2 myTest12 myTest13 myTest14 = (myTest1 == myTest2), myTest15 myTest14 myTest15 myTest16 = new Array(1, 2) myTest16 2 myTest17 = new(blah), myTest18 = new(blah,blah2), myTest19 myTest17 myTest18 blah2 myTest19