while () { ... } while (readline(STDIN)) { ...} are equivalent to: while (1) { last unless defined($_ = ); ... } while (glob("*.c")) { ... } while (<*.c>) { ... } are equivalent to: my @list = glob("*.c"); for (@list) { ... };