MATPOC,
Да только остаются анкоры, которые надо вырезать отдельно...
Вот таким можно всё отделить. Потом собрать, но без fragment
my($scheme, $authority, $path, $query, $fragment) = $uri =~ m|(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?|;
кстати, а почему не просто ?
if ( $tmpstr =~ '^(.+?)(/.*)' ) {
Какие еще есть символы которые не любит sce и требует замены на что либо ?