>> If the original list has no elements, C<reduce> immediately throws an
>> exception.
>What do you mean by exception, die ? No other builtin dies like that at
>runtime.
Well, more can trigger run-time exceptions than people usually notice,
but I don't know of one that does so on an empty list.
These raise an exception if given an argument of inappropriate type:
accept bind binmode bless close closedir connect eof
fcntl fileno flock getc getpeername getsockname getsockopt
ioctl kill listen open opendir pipe print printf prototype
read readdir readline recv rewinddir seek seekdir select
send setsockopt shutdown socket socketpair stat substr
sysopen sysread sysseek syswrite tell telldir truncate
write
These raise an exception if modifying a read-only target:
chomp chop fcntl ioctl read recv s/// substr syscall
sysread tr/// undef vec y///
These raise an exception when fed tainted data:
bind chdir chmod chown chroot connect do eval exec fcntl
glob ioctl kill link m// mkdir open opendir readpipe
rename require rmdir s/// setpgrp setpriority socket
socketpair symlink syscall system truncate umask unlink
utime
These raise an exception if unimplemented on current platform:
accept alarm bind chown chroot closedir connect crypt
dbmclose dbmopen fcntl flock fork getgrent getgrgid
getgrnam gethostbyaddr gethostbyname gethostent getlogin
getnetbyaddr getnetbyname getnetent getpeername getpgrp
getppid getpriority getprotobyname getprotobynumber
getprotoent getpwent getpwnam getpwuid getservbyname
getservbyport getservent getsockname getsockopt ioctl
kill link listen lstat msgctl msgget msgrcv msgsnd open
opendir pipe readdir readlink readpipe recv rewinddir
seekdir select semctl semget semop send setpgrp setpriority
setsockopt shmctl shmget shmread shmwrite shutdown
socket socketpair symlink syscall telldir times truncate
umask utime wait waitpid
These raise an exception whenever they're feeling curmudgeonly:
glob require substr sysread syswrite write
I presume this would fall in the lattermost category.
--tom