>> 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

Reply via email to