Once you stat a file (by either using the stat function or the -s thingy) you can get to the stat structure by using the special filehandle '_' (underscore). Using this you avoid more than one stat for each file.
if (-s $file) {
my $size = (stat _)[7];
Another thing to keep in mind, although not very important here, is to keep your loops small. the (30000*1024) constant doesn't need to be calculated everytime.
By the same token, you only need to int() your $meg if you are going to print it out, and since you are using printf, you don't even need it there.
Tiago