Reply to message «Indentation of perl scripts with the key word 'when' are not correct», sent 06:10:16 28 June 2011, Tuesday by Peng Yu:
> It seem that default perl indentation in vim is not correct with > 'when' (see example at the end of email). Could anybody let me know > how to fix the problem? I guess it is not `when`, but `\`. It was a known issue arised because in collection `[\[]' there are two characters: `\` and `\[`, not one `[` which is weird (but described in POSIX). I have wrote a patch for this, but sended it only to vim-dev mailing list, not to all maintainers of all scripts that have this error (there were way too many scripts and too many maintainers). Original message: > Hi, > > It seem that default perl indentation in vim is not correct with > 'when' (see example at the end of email). Could anybody let me know > how to fix the problem? > > $ vim --version > VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 24 2011 07:07:34) > Included patches: 1-35 > Modified by [email protected] > Compiled by buildd@ > Huge version with GTK2-GNOME GUI. Features included (+) or not (-): > +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset > +cindent > +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info > +comments > +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui > +diff > +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search > +farsi > +file_in_path +find_in_path +float +folding -footer +fork() +gettext > -hangul_input +iconv +insert_expand +jumplist +keymap +langmap > +libcall > +linebreak +lispindent +listcmds +localmap +lua/dyn +menu +mksession > +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm > +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang - > mzscheme > +netbeans_intg -osfiletype +path_extra +perl/dyn +persistent_undo > +postscript > +printer +profile +python/dyn +python3/dyn +quickfix +reltime > +rightleft +ruby > +scrollbind +signs +smartindent -sniff +startuptime +statusline - > sun_workshop > +syntax +tag_binary +tag_old_static -tag_any_white +tcl +terminfo > +termresponse > +textobjects +title +toolbar +user_commands +vertsplit +virtualedit > +visual > +visualextra +viminfo +vreplace +wildignore +wildmenu +windows > +writebackup > +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save > system vimrc file: "$VIM/vimrc" > user vimrc file: "$HOME/.vimrc" > user exrc file: "$HOME/.exrc" > system gvimrc file: "$VIM/gvimrc" > user gvimrc file: "$HOME/.gvimrc" > system menu file: "$VIMRUNTIME/menu.vim" > fall-back for $VIM: "/usr/share/vim" > Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK - > pthread -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/ > gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/ > glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/ > usr/include/libdrm -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include - > I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/ > pixman-1 -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/glib-2.0 -I/ > usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pango-1.0 -I/ > usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/include/gio- > unix-2.0/ -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/ > libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/ > include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/ > libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/ > gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/ > usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/ > libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/ > libxml2 -I/usr/include/gail-1.0 -I/usr/lib/gtk-2.0/include -I/usr/ > include/cairo -I/usr/include/pixman-1 -Wall -g -O2 - > D_FORTIFY_SOURCE=1 -I/usr/include/tcl8.4 -D_REENTRANT=1 - > D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1 -I/usr/lib/ruby/1.8/x86_64- > linux -DRUBY_VERSION=18 > Linking: gcc -L/usr/lib/x86_64-linux-gnu -L. -Wl,-Bsymbolic- > functions -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,--as-needed -o > vim -pthread -L/usr/lib/x86_64-linux-gnu -lgtk-x11-2.0 -lgdk-x11-2.0 > -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 - > lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 > -lgthread-2.0 -lrt -lglib-2.0 -L/usr/lib/x86_64-linux-gnu - > lgnomeui-2 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt - > lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 - > lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 - > lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgconf-2 - > lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXt - > lncurses -lselinux -lacl -lgpm -Wl,-E -fstack-protector -L/usr/ > local/lib -L/usr/lib/perl/5.10/CORE -L/usr/lib -ltcl8.4 -lieee - > lruby1.8 -lrt -lm > > > Regard, > Peng > > > $ cat main.pl > #!/usr/bin/env perl > > use strict; > use warnings; > > #use feature ":5.10"; > use feature "switch"; > > sub test_given { > my ($foo)=@_; > given($foo) { > when (undef) { > print '$foo is undefined'; > } > when ("foo") { > print '$foo is the string "foo"'; > } > when ([1,3,5,7,9]) { > print '$foo is an odd digit'; > continue; # Fall through > } > when ($_ < 100) { > print '$foo is numerically less than 100'; > } > when (\&complicated_check) { > print 'a complicated check for $foo is true'; > } > default { > die q(I don't know what to do with $foo); > } > } > } > > > test_given('foo')
signature.asc
Description: This is a digitally signed message part.
