I assume some sort of regex would be used to accomplish this?

*I need to get it where each word consists of 2 or more characters, start with a letter, and the remaining characters consist of letters, digits, and underscores.*

This is the code I currently have, although it isn't very close to my desired output:

```
while (my $line=<>) {
  # remove leading and trailing whitespace
  $line =~ s/^\s+|\s+$//g;
  $line = lc $line;
  @array = split / /, $line;
  foreach my $a (@array){
    $a =~ s/[\$#@~!&*()\[\];.,:?^ `\\\/]+//g;
    push(@list, "$a");
  }
}

```

A sample input would be:

```
#!/usr/bin/perl -w
use strict;
# This line will print a hello world line.
print "Hello world!\n";
exit 0;

```

And the desired output would be (alphabetical order):

```
bin
exit 
hello
hello
line
perl
print
print
strict
this
use
usr
will
world

```