Ah - well - the correction to your typo presents an explatnation not addressed yet, for the apparently anamolos behaviour.
The "greater-than" symbol in the OPEN statement will be treated as an output redirect by the command prompt, even if it is inside quotes. To avoid that, it needs to be preceded by the caret (^). So, to run the open statement at the command line the way you want, you will need to enter it as:
open (LOGFILE, "^>$logfile") or die "Can't open $logfile: $!";
(Notice the tiny little "^" symbol after the first quote mark)