\ExplSyntaxOn
\str_new:N \g_myfile_name_str
\str_gset:Nn \g_myfile_name_str {myfile.txt}
\str_new:N \g_myfile_old_mdfive_str
\str_new:N \l_myfile_mdfive_str
\cs_new_protected:Npn \getmdfive % get hash is not expandable, so protect
{
  \file_get_mdfive_hash:nN {\str_use:N \g_myfile_name_str} \l_myfile_mdfive_str
  \str_use:N \l_myfile_mdfive_str
}
\cs_new:Npn \getoldmdfive
{
  \str_use:N \g_myfile_old_mdfive_str
}
\cs_new:Npn \IfMyfileChanged #1 #2
{
  \str_if_eq:NNTF \g_myfile_old_mdfive_str \l_myfile_mdfive_str {#2} {#1}
}
\AtEndDocument
{
  \iow_now:cx { @auxout }
  {
    \token_to_str:N \ExplSyntaxOn
    \iow_newline:
    \str_gset:Nn \token_to_str:N \g_myfile_old_mdfive_str {\str_use:N \l_myfile_mdfive_str}
    \iow_newline:
    \token_to_str:N \ExplSyntaxOff
  }
}
\ExplSyntaxOff

\ExplSyntaxOn
\ExplSyntaxOn
\ExplSyntaxOn
\str_new:N \g_myfile_name_str
\ExplSyntaxOff
\str_new:N \g_myfile_name_str

% Example from #1945
\ExplSyntaxOn
\use:x
  {
    \exp_not:N \includegraphics
      [ \clist_use:Nn \g__pdfoverlay_graphics_options_clist { , } ]
      { \g__pdfoverlay_pdf_file_name_str }
  }
\ExplSyntaxOff

% Example from #2272
\ExplSyntaxOn
\c_tmpa_str
\c_tmpa_str:nx
\l_@@_int
\cs_new:Nn \@@_shift_item:nn {
  \str_set:Nx \l_tmpa_str { \str_head:n { #1 } }
  \str_case:VnF \l_tmpa_str {
    { x } {
      \prop_put:Nnx \l_@@_b { #1 }
        { \dim_eval:n { #2 + \l_@@_shiftx_dim } } }
    { y } {
      \prop_put:Nnx \l_@@_b { #1 }
        { \dim_eval:n { #2 + \l_@@_shifty_dim } } }
  } {
    \prop_put:Nnn \l_@@_b { #1 } { #2 }
  }
}
\ExplSyntaxOff
